当用户单击带有条件的 GridView 中的超链接时,如何导航到不同的 URL?

How can I navigate to a different URL when user clicks the hyperlink in the GridView with a condition?

我是学习新手asp.net。我在 GridView 中有一列,名称为 header FORM ID。我希望能够根据 FORM ID 的部分导航到不同的 URL。

例如,

我理解像这样使用 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>

您可以将 Hyperlinkfield 切换为带有 HyperLink 控件的 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>

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

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