ASP.NET代码块在服务器标签中

时间:2009-09-29 18:41:44

标签: asp.net

您是否可以在服务器标签中安装代码块?例如,我希望使用代码块创建自定义id字段。 (我知道还有其他方法可以使用中继器,但在我的特殊情况下,如果出于不相关的原因,我可能会这样做。)

<% foreach(var reference in references) { %>
...
<asp:LinkButton runat="server" ID='lbUpdateEmail_<%=reference.ReferenceId%>' OnClick="lbUpdateEmail_Click" style="float:right;">Update Email</asp:LinkButton>
...
<% } %>

3 个答案:

答案 0 :(得分:3)

我建议您以编程方式在代码后面添加链接按钮:

foreach(var reference in references) 
{
    LinkButton newLinkButton = new LinkButton();
    newLinkButton.Text = "Update Email";
    newLinkButton.Click += new EventHandler(a_lbUpdateEmail_Click);
    myPlaceHolder.Controls.Add(newLinkButton);
}

答案 1 :(得分:3)

无法使用&lt; %%&gt;内部服务器标签。

尽管ASP.NET在其行为中看起来非常动态,但您必须记住这些页面实际上已编译为.NET类。

在这种情况下,您使用的LinkBut​​ton标记表示您希望您的页面类包含LinkBut​​ton的实例,并且该ID为您提供将在设计时用于访问此属性的属性的名称(当您编辑时)你的代码。)

让我们说你的代码背后想要禁用链接按钮?如果ID尚未确定,您会如何引用它?

另外,请记住,您设置的“ID”不是以HTML格式呈现的“ID” - 如果这是您要查找的内容。

答案 2 :(得分:1)

我相信如果您打开ASP 3.0经典兼容模式,您可以这样做;那说,我真的建议考虑另一种方法。