Это работает, но правильно ли это делать ???
У меня есть собственный серверный элемент управления, на котором есть поле [input]. Я хочу имитировать текстовое поле ASP.NET, но не полностью. Когда текстовое поле отображается, у меня есть JavaScript, который позволяет пользователям выбирать значения, которые затем помещаются в это поле ввода.
У меня есть свойство открытого текста в элементе управления. В get / set я получаю / устанавливаю viewstate для элемента управления - эта часть проста, но когда элемент управления заполняется через javascript, Text get фактически не вызывается, как правильно установить это открытое свойство с помощью JavaScript (или даже если пользователь просто набирает текст в поле)?
Edit:
В OnInit я гарантирую, что состояние поддерживается путем достижения значений формы.
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (HttpContext.Current.Request.Form["MyInputBoxValue"] != "")
{
ViewState["MyInputBoxValue"]
= HttpContext.Current.Request.Form["MyInputBoxValue"];
}
}
Затем, чтобы вернуть значение в HtmlTextWrite, я делаю это:
protected override void RenderContents(HtmlTextWriter output)
{
// There is an input control here and i set its value property
// like this using the Text internal defined.
output.Write("<input value=" + Text + ">.....
}
спасибо