2012-10-22 63 views
2

好吧,所以我试图制作一个页面中的链接列表,使用foreach和循环生成,只要列表中有对象。以下是我用来生成链接的代码:自动生成链接列表

protected void Page_Init(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      if (Session["mamlist"] != null) 
      { 
       mamlist = (List<mammifere>)Session["mamlist"]; 

       int i = 0; 
       foreach (mammifere l in mamlist) 
       { 
        mamol.InnerHtml += ("<li><a onClick='select("+i+");' >" + l.Nom + "</a></li>"); 
        i++; 
       } 
      } 
     } 
    } 

由于某些原因,链接不可点击。我得到这个:

screenshot of the links

我怎样才能不导致另一页的链接,而是在页面的C#代码发起的方法?

+0

你有单引号双引号,双引号内... – IrishChieftain

+0

如果你仔细观察,你会发现它是3个独立双引号。双引号是为了使内容文本和单引号被用作实际的html标记 – AntoineLev

回答

2

您可以创建LinkButton控件调用子程序/方法在你的ASPX代码:

示例代码:

<%@ Page Language="C#" AutoEventWireup="True" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>LinkButton Example</title> 
<script language="C#" runat="server"> 

     void LinkButton_Click(Object sender, EventArgs e) 
     { 
     Label1.Text="You clicked the link button"; 
     } 

    </script> 

</head> 
<body> 

    <form id="form1" runat="server"> 

     <h3>LinkButton Example</h3> 

     <asp:LinkButton id="LinkButton1" 
      Text="Click Me" 
      Font-Names="Verdana" 
      Font-Size="14pt" 
      OnClick="LinkButton_Click" 
      runat="server"/> 

     <br /> 

     <asp:Label id="Label1" runat="server" /> 

    </form> 

</body> 
</html> 

在您的特定情况下,您的主页添加ContentPlaceHolder

<asp:contentplaceholder id="ContentPlaceHolder1" runat="server" /> 

在您希望链接出现的页面中添加一个Content控件,如下所示:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 

</asp:Content> 

那么你一定要foreach链接,这样做:

foreach (mammifere l in mamlist) 
{ 
    LinkButton linkButton = new LinkButton(); 

    linkButton.Text = l.Nom; 

    linkButton.OnClick= "LinkButton_Click"; 

    linkButton.ID = l.Nom;  

    Content1.Controls.Add(linkButton); 
} 
+0

我现在尝试 – AntoineLev

+0

由于某些原因,我无权访问contentplaceholder – AntoineLev

+1

请参阅我的编辑...它是自从我使用ASP.NET WebForms之后已经很长时间了...... :) –