首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用嵌套的json结果绑定DropdownList

使用嵌套的json结果绑定DropdownList
EN

Stack Overflow用户
提问于 2020-03-14 12:17:23
回答 1查看 154关注 0票数 0

在很大程度上,我已经成功地连接到一个API端点,并设法反序列化嵌套的json结果,并使用Newtonsoft.Json序列化属性将其绑定到一个网格视图。

但是,我不能绑定到下拉列表。用于将供应商名称传递到我的下拉列表的正确属性名称是什么?

我可以看到我想要传递的属性(供应商名称),并且已经尝试了我能想到的所有可能的字符串,但我得到的只是要显示的类名。

供应商名称在网格视图上显示良好

我可以看到要显示供应商->名称的属性

绑定代码

代码语言:javascript
代码运行次数:0
运行
复制
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();
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-14 12:44:10

看到您的JSON对象代码会很有帮助,但我想我可以从屏幕截图中收集到我需要的东西

您已将下拉列表绑定到供应商对象,而不是供应商的名称。我认为您可能应该列出所有不同供应商的新列表,并将其与之绑定,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60679676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档