在很大程度上,我已经成功地连接到一个API端点,并设法反序列化嵌套的json结果,并使用Newtonsoft.Json序列化属性将其绑定到一个网格视图。
但是,我不能绑定到下拉列表。用于将供应商名称传递到我的下拉列表的正确属性名称是什么?
我可以看到我想要传递的属性(供应商名称),并且已经尝试了我能想到的所有可能的字符串,但我得到的只是要显示的类名。
供应商名称在网格视图上显示良好
我可以看到要显示供应商->名称的属性
绑定代码
var readdata = comsumeapi.Result;
if (readdata.IsSuccessStatusCode)
{
var displayrecords = readdata.Content.ReadAsAsync<IList<CoupaPODetails>>();
displayrecords.Wait();
empobj = displayrecords.Result;
GridView1.DataSource = empobj;
GridView1.DataBind();
DropDownList1.DataSource = empobj;
DropDownList1.DataTextField = "supplier";
DropDownList1.DataBind();
}
发布于 2020-03-14 04:44:10
看到您的JSON对象代码会很有帮助,但我想我可以从屏幕截图中收集到我需要的东西
您已将下拉列表绑定到供应商对象,而不是供应商的名称。我认为您可能应该列出所有不同供应商的新列表,并将其与之绑定,如下所示:
var x = empobj.Select(e => e.supplier.name).Distinct().ToList();
(您的供应商对象似乎只包含一个名称?这有点奇怪,如果只包含一个字符串,为什么会有一个供应商对象。我认为它可能包含更多内容,比如名称和ID。如果它包含的内容不止这些,而您又想要一个不同的显示文本和值,那么可以使用here中的一种技术来分组(例如,先使用值,然后再使用linq .Select(g => new ListItem(){Text = g.First(), Value = g.Key})
来生成一个List<ListItem>
,作为下拉菜单的数据源)。)
不要忘记,您还需要绑定到网格的行数据绑定事件,以设置下拉列表中的选定项,其详细信息为here
https://stackoverflow.com/questions/60679676
复制相似问题