当用户在条件中单击GridView中的超链接时,如何导航到其他URL?

时间:2015-08-04 02:27:21

标签: asp.net gridview hyperlink

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

例如,

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

我理解使用MID函数如v=MID(string,4,1)来捕获第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>

2 个答案:

答案 0 :(得分:2)

您可以使用Hyperlinkfield控件将TemplateField切换为HyperLink,以便更好地控制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>

答案 1 :(得分:0)

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

<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.帮助我解决这个问题。