воссоздать текстовый блок управления сервером asp.net - PullRequest
1 голос
/ 08 августа 2011

Я пытаюсь воссоздать элемент управления 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 Ответ

1 голос
/ 08 августа 2011

У вашего ввода нет имени ... Без имени его значение никогда не будет отправлено обратно!

...