2011-09-12 45 views
4

我试图设置导航网址为一个超链接是在一个GridView中。设置导航网址为超链接动态

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

代码现在看起来像内部GridviewRowDataBound(对象发件人,GridViewRowEventArgs E)

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

我要将此代码里面navidation

如果任何人有一个想法,这将有助于

谢谢

+0

这将只呈现的文字:您页上的“

回答

1

当我们写html内容到literal,它不会正确地拿起asp hyperlink。但是当我使用正常的“a”标签时,它正确地采用了重定向路径。

literal.Text += "a ID='linkcontact' runat='server' href='" + "www.website./pagename.aspx?ID=" + id + "'>contact</a>"; 
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.Text += String.Format("<a href=\"{0}\">Contact</a>", navigationUrl); 
+0

也许我误解了这个问题或上下文,但不会简单地将“ mikemanne

+0

@mikemanne:这也是我的想法,因此我的第一个建议是将HyperLink控件添加到某种父容器中。 –

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> 
0

for make a menu and submenu code c#。与变量和navigateurl是形式未来

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

似乎你去了一个不同的方向!这不是用导航创建菜单。这是一个链接+ grid-view列中的一些其他信息,其中数据被附加到'literal'。似乎你今天加入了这个网站。欣赏你的贡献。但是看看没有任何可接受答案的问题。如果答案被接受,你会在答案左边看到一个复选标记! –