这行得通,但这是正确的方法吗???
我有一个自定义服务器控件,上面有一个 [输入] 框。我希望它有点模仿 ASP.NET 文本框,但不是完全模仿。当呈现文本框时,我有一个 javascript,允许用户选择然后放置在该输入框中的值。
我在控件上有一个公共文本属性。在获取/设置中,我获取/设置控件的视图状态 - 这部分很容易,但是当通过 javascript 填充控件时,实际上并未调用 Text get,使用 JavaScript 设置此公开属性的正确方法是什么(或者即使用户只是在框中输入)?
编辑:在 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 + ">.....
}
谢谢