是另一個控件模板的控件的一部分嗎?例如。中繼器ItemTemplate等的一部分?
更新:
由於運曾表示,這是一個轉發器的ItemTemplate的一部分,只是覺得應該解釋做什麼(儘管OP已經整理吧)
你需要調用的FindControl上Repeater或Controls.OfType()取決於情況,以獲得控制權。
ASP:
<asp:Repeater runat="server" ID="rptrTest">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtBxName" />
<asp:CheckBox runat="server" ID="chkBx1" />
<asp:CheckBox runat="server" ID="chkBx2" />
</ItemTemplate>
</asp:Repeater>
C#
IEnumerable<CheckBox> chkBoxes = rptrTest.Controls.OfType<CheckBox>();
TextBox txtBxName = (TextBox)rptrTest.FindControl("txtBxName");
我會經常做常用的控件(雖然閹這是一個好主意或沒有我敢肯定有人會現在讓我知道),是創建一個執行此代碼的成員。
private TextBox _txtBxName;
public TextBox txtBxName {
get {
if (_txtBxName == null) {
_txtBxName = (TextBox)rptrTest.FindControl("txtBxName");
}
return _txtBxName;
}
}
你的@page指令是什麼樣的,類聲明(public partial class XX)和文件後面的代碼的名稱是什麼?和什麼版本的ASP.NET? – 2010-10-14 07:32:07
@rune ::當我將這兩行註釋掉時代碼的其餘部分仍然正常工作 – Serenity 2010-10-14 07:33:17
只是試圖幫助:)完全可以讓代碼的其餘部分工作。例如。如果你繼承你的代碼隱藏(不使用從類聲明中可見的部分),你可能忘記聲明你的控件。如果你使用partial,但是從基本頁面派生,那麼即使你的@page指令是錯誤的(錯誤代碼隱藏文件),其餘的仍然可以工作,因爲任何其他工作都不排除上面的內容只是使它不太可能:) – 2010-10-14 07:46:00