将变量传递给用户控件

时间:2011-11-11 09:10:01

标签: c# asp.net user-controls devexpress

我想将文本框中的一个(在母版页上)值传递到用户控件(.ascx)页面。这是我的代码显示如何打开用户控件..

Control usrCnt= LoadControl("userControl.ascx");
usrCnt.ID = "usrCnt";
ASPxPanel1.Visible = true;
ASPxPanel1.Controls.Clear();
ASPxPanel1.Controls.Add(userCnt);

如何将文本框的值发布到用户控件?我不能这样做..

Control usrCnt= LoadControl("userControl.ascx?param=" + textbox.Text);

2 个答案:

答案 0 :(得分:3)

为SetText等用户控件创建一个方法 然后

 usrCnt.SetText("textValue");

如果它是您的webusercontrol代码

   public partial class WebUserControl1 : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public void SetText(string theText)
        {
            this.Label1.Text = theText;
        }
    }

如果您已将控件添加到页面中 在页面中将其称为

 this.WebUserControl11.SetText(TextBox1.Text);

答案 1 :(得分:1)

将这些放在usercontrol的上半部分

private string _TextBoxValue = string.Empty;
public string TextBoxValue {
    get { return _TextBoxValue; }
    set { _TextBoxValue = value; }
}

然后在您的母版页上

usrCnt.TextBoxValue = TextBox1.Text;

最快和最脏的方式是在您的MasterPage上

  

ViewState [“TextBoxValue”] = TextBox1.Text();

并在UserControl上访问ViewState["TextBoxValue"]以获取值。