1
我需要訪問母版頁上的多個文本框。文本框是在單獨的Web控件中聲明的,它不會讓我調用文本框的名稱,以便我可以用數據填充它們。我有多個文本框就像我說的,但例如,當我嘗試寫入txtName
它不會讓我即使當我點擊設計視圖它說它在那裏。訪問母版頁上的Web控件中的文本框
有人可以幫我嗎?
我需要訪問母版頁上的多個文本框。文本框是在單獨的Web控件中聲明的,它不會讓我調用文本框的名稱,以便我可以用數據填充它們。我有多個文本框就像我說的,但例如,當我嘗試寫入txtName
它不會讓我即使當我點擊設計視圖它說它在那裏。訪問母版頁上的Web控件中的文本框
有人可以幫我嗎?
將Web控件中的文本框作爲屬性公開。
在webcontrol.ascx
<asp:TextBox runat="server" id="txtName" />
在webcontrol.ascx.cs
public virtual TextBox TxtName { get {return txtName;} //note capitalization
然後做同樣的事情在母版頁揭露網絡控制。
在masterpage.master
<uc1:MyWebControl runat="server" id="MyWebControl1" />
在mastermage.master.cs
public virtual MyWebControl myWebControl{get {return myWebControl1;}}
然後,讓你的母版頁強烈從內容頁加入了MasterType指令類型。
Default.aspx中
<%@ MasterType TypeName="MyMasterPageClass" />
然後你可以從後面內容頁面代碼訪問它。在default.aspx.cs
Master.myWebControl.TxtName.Text="Hello, world!";
有必要做的原因是,在的.aspx,的.ascx和的.master頁面宣佈控制是protected
代替public
而且也沒有辦法(截至目前)改變他們,我知道。所以我們可以使用屬性來公開這些控件。
[如何從內容頁面訪問母版頁控件](http://stackoverflow.com/questions/15573505/how-to-access-master-page-control-from-content-page) – Paddy
@帕迪OP解釋完全相反。它不是重複的。 '「文本框是在一個單獨的Web控件中聲明的''。 – Bharadwaj
@Bharadwaj - 我不知道你是對的,但即便如此,這裏有一個答案,顯示瞭如何從母版頁訪問內容頁面:http://stackoverflow.com/questions/4979669/how-to -access-content-page-controls-from-master-page-in-asp-net?rq = 1但是,我不確定這是否是真正推薦的做法。 – Paddy