#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"]
, чтобы получить значение.