ASP.NET页面中的内联编码

2 c# asp.net

嗨伙计们,我在我的aspx页面中使用此代码

<%for (int i=o;i<5;i++)
{%>
  <asp: link button id=i text=i/>

<%}%>
Run Code Online (Sandbox Code Playgroud)

在它生产五个链接按钮,如

IIIII

但我只想要五个链接按钮

1 2 3 4 5

id = 1,2,3,4,5分别

我怎么能实现这一点

Guf*_*ffa 7

将占位符放在您想要链接的页面中:

<asp:PlaceHolder ID="LinkContainer" runat="server" />
Run Code Online (Sandbox Code Playgroud)

在代码隐藏的Page_Load方法中,您将链接放在占位符中:

for (int i = 1; i <= 5; i++) {
   LinkButton link = new LinkButton();
   link.ID = "Link" + i.ToString();
   link.Text = i.ToString();
   LinkContainer.Controls.Add(link);
}
Run Code Online (Sandbox Code Playgroud)

这样,控件将在页面循环的早期创建,如果您愿意,可以将服务器端事件连接到它们.

(注意我在id中添加了一个前缀.在某些情况下,只有数字的id可能会导致问题.)


Joe*_*orn 5

这不是在ASP.Net中做事的最佳方式.动态控件有很多陷阱,你刚刚找到其中一个.这段代码好一点(确保页面在某个时刻调用DataBind()):

<%for (int i=0;i<5;i++)
{%>
  <asp:LinkButton id="<%# i%>" runat="server" text="<%#i%>" />

<%}%>
Run Code Online (Sandbox Code Playgroud)

但你会发现事件和变化并没有按照你期望的方式连接起来,如果它起作用的话.只有五个,最好只需手动列出它们,事情会变得更容易.或者,如果它们来自某个地方的数据源,则使用转发器并以这种方式创建它们.

实际上,如果你能提供帮助,你根本不想将代码混合到你的aspx标记中.把它留给后面的代码吧!

  • 您无法以这种方式设置控件的ID.您将获得异常:控件的ID属性只能使用标记中的ID属性和简单值来设置. (2认同)