我试图将导航网址设置为网格视图内的超链接。
我使用后端c#代码中的文字在gridview中创建表。
代码现在看起来像GridviewRowDataBound(对象发送者,GridViewRowEventArgs e)
Literal.Text += "<asp:HyperLink ID='hlContact' runat='server' NavigateUrl='#'>Contact </asp:HyperLink>";
我想在此代码中设置导航
如果有人有想法会有所帮助
由于
答案 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);