2011-01-25 79 views
0

我有一個包含文本框的用戶控件。我現在想爲該用戶控件添加變量,我們稱它爲Text,它將用傳入的值填充文本框。我認爲這可以在用戶控件背後的代碼中的「set」變量中完成。在頁面設置usercontrol中的文本框文本

public string Text 
{ 
    get {} 
    set 
    { 
     txtBox.Text = value; 
    } 
} 

txtBox是usercontrol內的文本框的ID。有誰知道這可以做到嗎?

感謝

編輯 我懷疑的問題是,我設置在承載用戶控件的頁的Page_Load中的文本值。我應該在哪裏設置這個值?

+1

這不是工作? – Chandu 2011-01-25 06:19:51

+0

沒有它沒有。不能爲我的生活找出原因。事件剝離了我的usercontrol到什麼都不是,而是一個文本框,什麼都沒有。 – Peuge 2011-01-25 06:22:53

回答

0

如果你的問題是,txtBox爲null,則我可以建議你如下:

如果你正在創建一個用戶控制動態再不要忘了之前添加到頁面的控件樹(或隱明確)訪問其子控件。否則,所有這些子控件將保持未初始化:

MyUserControl ctrl = (MyUserControl)Page.LoadControl("~/MyUserControl.ascx"); 
base.Controls.Add(ctrl); 

ctrl.Text = "some value"; 

如果你的用戶控件在頁面的標記中聲明這時別忘了使用Register指令與「源」屬性設置爲用戶控件的位置登記:

<%@ Register TagPrefix="controls" TagName="MyUserControl" 
    Src="~/MyUserControl.ascx" %> 

<controls:MyUserControl id="ctrl1" Text="some value" runat="server" /> 

使用以下方法,如果是動態創建的所有子控件將無法正常工作(不是這樣的註冊用戶控件但你並不需要一個用戶控件 - 你只需要在派生類Control分類):

<%-- Will not work for user controls --%> 
<%@ Register Assembly="MyControlsAssembly.Shell" Namespace="MyControls" 
    TagPrefix="controls" %> 

希望這會對你有所幫助。

相關問題