将导航URL动态设置为超链接

时间:2011-09-12 16:08:00

标签: c# asp.net

我试图将导航网址设置为网格视图内的超链接。

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

代码现在看起来像GridviewRowDataBound(对象发送者,GridViewRowEventArgs e)

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

我想在此代码中设置导航

如果有人有想法会有所帮助

由于

4 个答案:

答案 0 :(得分:5)

您应该只创建一个HyperLink控件,而不是尝试将其添加到文字:

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); 

答案 1 :(得分:2)

如果您只是想在带有绑定字段的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>

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

用于制作菜单和子菜单代码c#。变量和导航是下一个形式

    <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);