【问题标题】:How can I navigate to a different URL when user clicks the hyperlink in the GridView with a condition?当用户单击带有条件的 GridView 中的超链接时,如何导航到不同的 URL?
【发布时间】:2015-10-26 07:02:29
【问题描述】:

我是学习 asp.net 的初学者。我在 GridView 中有一个标题名称为 FORM ID 的列。我希望能够根据FORM ID 的部分导航到不同的 URL。

例如,

  • 点击 abc10001 将带我们到“~/abc1.aspx?formid=abc10001”
  • 点击 abc20001 将带我们到“~/abc2.aspx?formid=abc20001”

我了解像 v=MID(string,4,1) 这样使用 MID 函数来捕获第 4 个值并通过确定值 v 来重定向到页面,但我不知道如何正确应用它。请指导我。非常感谢您的帮助。

以下是我目前正在处理的 aspx 代码:

<asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="false">           
    <columns>
        <asp:Hyperlinkfield DataTextField="formid" HeaderText="Form ID" ItemStyle-  Width="150px" 
            DataNavigateUrlFields="formid" DataNavigateUrlFormatString="~/abc1.aspx" />         
    </Columns>
</asp:GridView>

【问题讨论】:

  • 如果您将所有内容路由到同一个页面,但传递了不同的查询字符串值怎么办?那要容易得多。例如:~/abc.aspx?id=1
  • abc1.aspx 和 abc2.aspx 的模块和内容会有所不同。
  • 然后让页面根据查询字符串值加载必要的数据。而且,如果您要拥有这样的静态页面,那么在从某些数据源加载的网格视图中生成链接是没有意义的。

标签: asp.net gridview hyperlink


【解决方案1】:

您可以使用HyperLink 控件将Hyperlinkfield 切换为TemplateField,以便对NavigateUrl 进行更多控制,如下所示:

<asp:TemplateField HeaderText="Form ID">
    <ItemTemplate>
        <asp:HyperLink runat="server" Text='<%# Eval("formid") %>'
            NavigateUrl='<%# "~/abc" + Mid(Eval("formid"), 4, 1) + ".aspx" %>'>
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

【讨论】:

  • 感谢您帮我解答这个问题!
  • @NgZen 不客气。欢迎来到 StackOverflow。接受并投票就足够了。
【解决方案2】:

这是我最终成功运行的代码:

<asp:GridView ID="child" runat="server" AutoGenerateColumns="false" >
  <Columns>
    <asp:TemplateField HeaderText="Form ID" >
      <ItemTemplate>
        <asp:Hyperlink runat="server"  Text='<%# Eval("formid") %>' 
         NavigateUrl='<%# Eval("formid","~/abc" + Mid(Eval("formid"), 4, 1) + ".aspx?formid={0}") %>' />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

感谢 @mason 和 @Tony L. 在这个问题上帮助我。

【讨论】:

  • 我明白了。我没有意识到您最后还需要查询字符串。很高兴你成功了。
猜你喜欢
  • 2014-06-23
  • 1970-01-01
  • 2023-03-30
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 2021-01-28
相关资源
最近更新 更多