重新创建文本框asp.net服务器控件

时间:2011-08-08 09:03:09

标签: asp.net asp.net-controls

我正在尝试重新创建TextBox控件, 问题是在回发后,文本框中的值返回到它的初始状态。

有谁知道如何让它在回发后保持价值?

    [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);
        }
    }

1 个答案:

答案 0 :(得分:1)

您的输入没有名称......如果没有名称,他的价值将永远不会回发!