将Service GET调用中的数据绑定到Gridview时,不能仅选择某些列
本文关键字:不能 选择 Gridview 调用 GET Service 数据绑定 | 更新日期: 2023-09-27 18:25:13
我正在根据调用服务
IList<Quotes> objUserDetails = new List<Quotes>();
objUserDetails = objService.GetQuote();
问题是当我将其绑定到网格视图时:
GridView1.DataSource = objUserDetails;
GridView1.DataBind();
在网格视图中,我得到了列表报价中的所有列,尽管我只想要4列。
我无法编辑列表Quotes,因为它在其他地方用于更新Web服务,我也无法绑定到代码中的数据源,因为它必须是动态的,因为它正在调用Web服务。
有什么想法吗?我正在拔掉这颗牙齿,只剩下两颗牙齿了!lol
如果没有在标记中看到GridVew
声明,因为您看到了查询中的所有列,那么我说您的AutoGenerateColumns
属性设置为true,如下所示:
<asp:GridView AutoGenerateColumns="True"...
如果您希望不自动返回所有列,则需要将此属性设置为false,如下所示:
<asp:GridView AutoGenerateColumns="True"...
现在,由于您已经说过不让数据决定渲染哪些列,因此需要通过Columns
标记告诉GridView
您想要什么列。
阅读GridView.Columns属性的MSDN文档
使用以下代码从另一个网站的论坛(ASp.net)得到了答案。真不敢相信它有多简单。还是谢谢你。var fourColList=objUserDetails.Select(x=>new{Col1=x.H_Item,Col2=x.H_QuoteRef,Col3=x.T_CSQty,Col4=x.T_Days}).ToList();GridView1.DataSource=fourColList;只是想在这里完成它,以防其他人遇到同样的问题。