好吧,我试图在页面中创建一个链接列表,该列表是使用 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++;
}
}
}
}
由于某种原因,链接无法点击。我明白了:
如何创建不指向其他页面而是在页面的 C#
代码中启动方法的链接?
最佳答案
您可以创建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);
}
关于asp.net - 自动生成链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003739/