Передача переменной в пользовательский элемент управления

#c# #asp.net #user-controls #devexpress

#c# #asp.net #пользовательские элементы управления #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);
  

Ответ №1:

Создайте метод для вашего пользовательского элемента управления, подобный 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. Для нестатического поля, метода или свойства требуется ссылка на объект у меня эта ошибка.

2. вы добавили пользовательский элемент управления на веб-страницу?!

Ответ №2:

поместите их в верхнюю часть вашего пользовательского элемента управления

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

затем на вашей главной странице

 usrCnt.TextBoxValue = TextBox1.Text;
  

Самый быстрый и грязный способ находится на вашей главной странице

ViewState[«TextBoxValue»] = TextBox1.Text();

и в UserControl выполните доступ ViewState["TextBoxValue"] , чтобы получить значение.