asp.net
2009-09-29 56 views 1 likes 
1

服務器標籤中沒有代碼塊嗎?例如,我希望使用代碼塊創建自定義ID字段。 (我知道有其他的方式與中繼器要做到這一點,但在我的特定情況下,我想,如果不相關的理由,這樣做事的可能。)服務器標籤中的ASP.NET代碼塊

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

以這種方式生成ID背後的原因是什麼?任何你想要它的具體例子? – shahkalpesh 2009-09-29 18:46:32

回答

3

在服務器標籤內不可能使用<%%>。

儘管ASP.NET看起來非常動態,但您必須記住,這些頁面實際上是編譯爲.NET類的。

在這種情況下,您正在使用的LinkBut​​ton標記表示您希望您的頁面類包含LinkBut​​ton的實例,並且該ID會爲您提供在設計時用於訪問該屬性的屬性名稱(當您編輯你的代碼。)

讓我們說在你的代碼背後你想禁用鏈接按鈕?如果身份證尚未確定,您將如何參考?另外,請記住,您設置的「ID」不是在HTML中呈現的「ID」 - 如果那是您正在尋找的內容。

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); 
} 
+0

+1由於某種原因,這看起來像是開箱即用的想法 – sshow 2009-09-29 18:49:11

1

我相信,如果你打開ASP 3.0經典兼容模式,你可以這樣做;說,我真的建議尋找另一種方法。

相關問題