我正在为一所大学项目工作。它是一个商店网站,客户可以在这里下订单。
到目前为止,我使用linq查询在Gridview中填充了产品。
现在,我遇到的问题是,我想让这些行可以点击,以便我可以执行gv_SelectedIndexChanged方法,这样我就可以在下面的标签上附加产品说明。
我还希望能够将数据传递到与单击按钮时选择的行相关的其他页面。我有理由相信我能解决这个问题,我之前做过类似的事情。
所以我的问题是如何让我的Gridview行可以点击?
这是我的Gridview。
<asp:GridView ID="gv" runat="server" OnSelectedIndexChanged="gv_SelectedIndexChanged">
</asp:GridView>
这就是填充它的代码。
var products = from p in db.ProductTbls
select new
{
Name = p.ProductName,
Cost = p.UnitPrice.ToString(),
Stock = p.Quantity.ToString()
};
gv.DataSource = products.ToList().Distinct();
gv.DataBind();
我尝试使用我在网上找到的指南如何做到这一点,但我无法弄清楚如何让它发挥作用。 Guide
答案 0 :(得分:-1)
@ConorS,我相信你的应用程序崩溃的原因是你在执行Lazy操作之前执行了一个贪婪的操作。我的意思是你应该在.ToList()之前执行.Distinct。因此你应该把它写成:
gv.DataSource = products.Distinct().ToList();
像ToList()之类的贪婪操作,在像.Distinct这样的操作被延期时立即执行.... 你可以找到关于here两种类型的更多信息!