2014-05-13 46 views
1

我需要訪問母版頁上的多個文本框。文本框是在單獨的Web控件中聲明的,它不會讓我調用文本框的名稱,以便我可以用數據填充它們。我有多個文本框就像我說的,但例如,當我嘗試寫入txtName它不會讓我即使當我點擊設計視圖它說它在那裏。訪問母版頁上的Web控件中的文本框

有人可以幫我嗎?

+1

[如何從內容頁面訪問母版頁控件](http://stackoverflow.com/questions/15573505/how-to-access-master-page-control-from-content-page) – Paddy

+0

@帕迪OP解釋完全相反。它不是重複的。 '「文本框是在一個單獨的Web控件中聲明的''。 – Bharadwaj

+0

@Bharadwaj - 我不知道你是對的,但即便如此,這裏有一個答案,顯示瞭如何從母版頁訪問內容頁面:http://stackoverflow.com/questions/4979669/how-to -access-content-page-controls-from-master-page-in-asp-net?rq = 1但是,我不確定這是否是真正推薦的做法。 – Paddy

回答

2

將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而且也沒有辦法(截至目前)改變他們,我知道。所以我們可以使用屬性來公開這些控件。

相關問題