如何通过单击行上的任何位置使我的Gridview行可单击?

时间:2016-01-14 19:21:47

标签: c# asp.net linq gridview

我正在为一所大学项目工作。它是一个商店网站,客户可以在这里下订单。

到目前为止,我使用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

1 个答案:

答案 0 :(得分:-1)

@ConorS,我相信你的应用程序崩溃的原因是你在执行Lazy操作之前执行了一个贪婪的操作。我的意思是你应该在.ToList()之前执行.Distinct。因此你应该把它写成:

 gv.DataSource = products.Distinct().ToList();

像ToList()之类的贪婪操作,在像.Distinct这样的操作被延期时立即执行....  你可以找到关于here两种类型的更多信息!