动态设置导航url为超链接

本文关键字:超链接 url 导航 设置 动态 | 更新日期: 2023-09-27 18:08:26

我试图将导航url设置为gridview内部的超链接。

我在后台c#代码中使用文字在gridview中创建表。

代码现在看起来像GridviewRowDataBound(object sender, GridViewRowEventArgs e)

Literal.Text += "<asp:HyperLink ID='hlContact' runat='server' NavigateUrl='#'>Contact </asp:HyperLink>";

我想在这段代码中设置导航

如果有人有什么想法,会很有帮助的

谢谢

动态设置导航url为超链接

您应该直接创建一个超链接控件,而不是尝试在文字中添加一个:

HyperLink lnk = new HyperLink();
lnk.Text = "Hello World!";
lnk.NavigateUrl = "~/somefolder/somepage.aspx";
e.Row.Cells[0].Controls.Add(lnk);

如果你的方法可以工作,你可以尝试这样做:

Literal.Text += String.Format("<asp:HyperLink ID='"hlContact'" runat='"server'" NavigateUrl='"{0}'">Contact</asp:HyperLink>", navigationUrl); 

如果你想使用Literal控件,我会这样做:

Literal.Text += String.Format("<a href='"{0}'">Contact</a>", navigationUrl); 

如果你只是想在GridView中绑定一个带有绑定字段的HyperLink字段,你可以使用TemplateField。这里有一个示例,可以预先完成它,而不需要在后面的代码中添加它。

<asp:TemplateField HeaderText="Contact" SortExpression="LastName, FirstName">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# String.Format("~/Page.aspx?ID={0}", Eval("CustID").ToString()) %>'>Contact</asp:HyperLink>)
    </ItemTemplate>
</asp:TemplateField>

当我们将html的内容写入literal时,它不会正确地拾取asp hyperlink。但是当我使用正常的“a”标记时,它正确地采取重定向路径。

literal.Text += "a ID='linkcontact' runat='server' href='" + "www.website./pagename.aspx?ID=" + id + "'>contact</a>";

创建一个菜单和子菜单代码c#。使用变量和navigateurl的格式为next

    <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>                      
                    <asp:MenuItem>
                       <asp:MenuItem></asp:MenuItem>
                       <asp:MenuItem></asp:MenuItem>
                    </asp:MenuItem>
                </Items>
            </asp:Menu>
    NavigationMenu.Items[0].Text = "xxxxxx"; name of menu
    MenuItem menu = NavigationMenu.Items[0];
    MenuItem submenu = new MenuItem("xxxxxx"); //name of submenu
    submenu.NavigateUrl = "~/Main/xxxxx.aspx?id=" + id + "";
    MenuItem submenu1 = new MenuItem("xxxxxxx");//name of sumbenu1
    submenu1.NavigateUrl = "~/Main/xxxxxxx.aspx?id=" + id + "";
    menu.ChildItems.Add(submenu);
    menu.ChildItems.Add(submenu1);