【问题标题】:Set NavigateUrl in RowDataBound event在 RowDataBound 事件中设置 NavigateUrl
【发布时间】:2016-07-13 17:03:46
【问题描述】:

我目前有一个带有超链接列的网格视图,用于编辑和删除客户。在我的情况下,我需要使用超链接,但想知道如何将其他值传递给我去的页面?现在我可以传递表值,但是如果我想传递其他数据呢?比如返回页面时要使用的my pagesort、index、searchfields?

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

<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>

【问题讨论】:

    标签: asp.net vb.net gridview query-string navigateurl


    【解决方案1】:

    这取决于 - 您可以将其更改为按钮,并且在 RowCommand 事件中,您可以在 Session 中存储一些关键数据,然后重定向。或者,您可以将所有内容放在查询字符串中,但如果您有很多字段要传递到其他页面,我会使用一个按钮(或链接按钮),在 Grid_RowCommand 中给它一个命令名称,将值存储在会话中并重定向,然后在重定向后检索并删除会话变量。

    【讨论】:

    • 我没有大量数据要传递,所以我绝对可以使用查询字符串。我想我的主要问题是如何格式化它。所以说从代码隐藏中获取一个值,例如我的 SortDirection() 方法中的当前 sortDirection 并将其传递到查询字符串中?
    • 我可以在我的超链接中从我的代码隐藏中传递变量吗?
    • 好吧,你会这样做Response.Redirect("Some.aspx?id=" + id.ToString() + "&amp;other=" + other.ToString());
    • 嗯,我不认为我可以将 Response.Redirect 合并到我的超链接中
    • 我的建议是使用 asp:Button 或 asp:LinkBut​​ton,或者在 gridview 中使用 CommandField 来触发 Grid 上的 RowCommand 事件。
    猜你喜欢
    • 2013-03-14
    • 2014-08-30
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多