在 RowDataBound 事件中设置 NavigateUrl

Set NavigateUrl in RowDataBound event

我目前有一个带有一列超链接的 gridview,用于编辑和删除客户。我需要在我的案例中使用超链接,但想知道我还能如何将其他值传递到我要访问的页面?现在我可以传递 table 值,但是如果我想传递其他数据呢?比如我的pagesort, index, searchfields,在返回页面时使用?

现在我正在使用会话来处理上述问题,但被告知对值使用查询字符串,并且不确定最佳方法。

<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="EditLink" runat="server" Text="Edit"
  NavigateUrl='<%# "~/EditCustomer.aspx?ID=" & DataBinder.Eval(Container.DataItem, "MasterContactID")%>' />
<asp:HyperLink ID="Delete" runat="server" Text="Delete"
  NavigateUrl='<%# "~/DeleteCustomer.aspx?ID=" & DataBinder.Eval(Container.DataItem, "MasterContactID")%>' />
</ItemTemplate>
</asp:TemplateField>

视情况而定-您可以将其更改为按钮,并且在 RowCommand 事件上,您可以将一些关键数据存储在 Session 中,然后重定向。或者,你可以把所有东西都放在查询字符串中,但是如果你有很多字段要传递到另一个页面,我会使用一个按钮(或 link 按钮),给它一个命令名称,在 Grid_RowCommand, 将值存储在会话中并重定向,然后在重定向后检索并删除会话变量。