0

我按照以下方式调用服务:

IList<Quotes> objUserDetails = new List<Quotes>();
objUserDetails = objService.GetQuote();

问题是当我将它绑定到gridview时:

GridView1.DataSource = objUserDetails;
GridView1.DataBind();

在gridview中,即使我只想要4列,我也会得到列表引号中的所有列。

我无法编辑 Quotes 列表,因为它在其他地方用于更新 web 服务,并且我无法绑定到代码中的数据源,因为它必须是动态的,因为它正在调用 web 服务。

有任何想法吗?正在拔掉这颗牙齿,只剩下两颗牙齿了!哈哈

4

2 回答 2

0

没有GridVew在标记中看到您的声明,因为您看到了查询中的所有列,所以我说您的AutoGenerateColumns属性设置为 true,如下所示:

<asp:GridView AutoGenerateColumns="True"...

如果您不希望自动返回所有列,则需要将此属性设置为 false,如下所示:

<asp:GridView AutoGenerateColumns="True"...

现在,由于您已经说过不让数据决定渲染哪些列,您GridView需要通过Columns标记告诉您想要哪些列。

阅读GridView.Columns 属性的 MSDN 文档

于 2013-07-26T11:50:45.010 回答
0

使用来自另一个网站论坛(ASp.net)的以下代码回答了这个问题。简直不敢相信它是多么简单。一样的感谢。varfourColList = objUserDetails.Select(x => new { Col1 = x.H_Item, Col2 = x.H_QuoteRef, Col3 = x.T_CSQty, Col4 = x.T_Days }).ToList(); GridView1.DataSource =fourColList; 只是想在这里完成它,以防其他人遇到同样的问题。

于 2013-08-02T08:13:02.763 回答