我試圖重新創建TextBox控件, 問題是,回發後文本框中的值返回到它的初始狀態。重新創建文本框asp.net服務器控件
任何人都知道如何使它在回傳後堅持價值?
[DefaultProperty("Text")]
[ToolboxData("<{0}:MyTextBox runat=server></{0}:MyTextBox>")]
public class MyTextBox : WebControl
{
[Bindable(true)]
[DefaultValue("")]
public string Text
{
get
{
return (String)ViewState["Text"] ?? string.Empty;
}
set
{
ViewState["Text"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
var a = string.Format(@"<input type='text' id='{0}' name='{0}' value='{1}' />", ID, Text);
output.Write(a);
}
protected override void Render(HtmlTextWriter writer)
{
RenderContents(writer);
}
}
您是否確定將控件添加到狀態包中足夠早(即在Page_Init中)? – Olaf
@Olaf在標記中添加 – Omu
不是從TextBox繼承而是從WebControl繼承(並覆蓋文本)的選項嗎?這不是對你的問題的直接回答,但可能解決潛在的問題。 – Olaf