当用户单击带有条件的 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。
例如,
- 点击 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>
您可以将 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. 帮助我解决了这个问题。
我是学习新手asp.net。我在 GridView 中有一列,名称为 header 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>
您可以将 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. 帮助我解决了这个问题。