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

本文关键字:单击 我的 Gridview 位置 何通过 任意 | 更新日期: 2023-09-27 18:30:18

我正在为大学做一个项目。这是一个商店网站,客户可以在其中下订单。

到目前为止,我所做的是使用 linq 查询在 Gridview 中使用产品填充

现在,我遇到的问题是我想使这些行可单击,以便我可以执行gv_SelectedIndexChanged方法,以便我可以将产品描述附加到下面的标签中。

我还希望能够将数据传递到与单击按钮时选择的行相关的另一个页面。我有理由相信我可以弄清楚这一点,我以前做过类似的事情。

所以我的问题是如何使我的网格视图行可单击?

这是我拥有的网格视图。

<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();

我尝试使用我在网上找到的指南如何做到这一点,但我无法弄清楚如何让它工作。指导

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

@ConorS,我相信您的应用程序崩溃的原因是您在执行懒惰操作之前正在执行贪婪操作。我的意思是你应该执行.之前明显。ToList()..因此,您应该将其写为:

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

像 ToList() 这样的贪婪操作会立即执行,而像 .不同的是延迟的。 您可以在此处找到有关这两种类型的更多信息!