Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中,如何根据';在gridview行中单击_C#_Asp.net - Fatal编程技术网

在C#中,如何根据';在gridview行中单击

在C#中,如何根据';在gridview行中单击,c#,asp.net,C#,Asp.net,我有一个显示产品gridview的页面。此表中有一列,其中包含一个名为“详细信息”的超链接。我希望这样,如果用户单击该特定产品的“详细信息”单元格,将打开一个新页面,提供该产品的更多信息。我不确定如何确定“详细信息”链接位于哪个产品记录中,以及如何将其转到下一页。至于“链接”您的产品记录,程序员使用唯一标识符进行此操作。在大多数情况下,您将使用整数 历史上,人们使用查询字符串将数据库ID从一个页面传递到另一个页面。在ASP.NET中,您也可以这样做。或者,您可以将产品ID存储在会话中,然后从新页

我有一个显示产品gridview的页面。此表中有一列,其中包含一个名为“详细信息”的超链接。我希望这样,如果用户单击该特定产品的“详细信息”单元格,将打开一个新页面,提供该产品的更多信息。我不确定如何确定“详细信息”链接位于哪个
产品
记录中,以及如何将其转到下一页。

至于“链接”您的产品记录,程序员使用唯一标识符进行此操作。在大多数情况下,您将使用整数


历史上,人们使用查询字符串将数据库ID从一个页面传递到另一个页面。在ASP.NET中,您也可以这样做。或者,您可以将产品ID存储在
会话中,然后从新页面中的
会话中加载该ID。

您可以在查询字符串中使用产品ID的超链接字段

以下是一个示例:

<asp:GridView runat="server" ID="gridViewProducts">
  <Columns>
     <asp:HyperLinkField HeaderText="ProductId" DataNavigateUrlFormatString="ProductDetail.aspx?action=edit&id={0}" DataNavigateUrlFields="ProductId" DataTextField="ProductId"  />
     <asp:BoundField HeaderText="Product Name" DataField="ProductName" />
  </Columns>
</asp:GridView>


绑定时,productID自动进入查询字符串

您可以获取gridview的productID by index属性。使用该productId,您可以导航到特定产品的详细信息。

我完全不建议这样做。在querystring中发送产品id就足够了,并且不会消耗服务器资源。另外,这需要开发人员进行额外的工作来构建和维护。此外,如果用户希望打开多个产品页面,该怎么办?使用会话变量会限制这种可能性。此外,OP说他不确定选择了哪种产品,所以他如何将其保存到会话中?@DustinDavis,我在回答的第一部分提到了唯一标识符。不清楚吗?其次,我不是推荐一种方法而不是另一种方法,我只是说你可以做到这一点。