将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

将Service GET调用中的数据绑定到Gridview时,不能仅选择某些列

如果没有在标记中看到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;只是想在这里完成它,以防其他人遇到同样的问题。