最近在研究自定义控件,可是遇到了一个问题是这样的,我继承的是CONTROL类有一个TEXT属性,用视图状态来SET,GET值然后重写RENDER里面有一个<input type='text'/>
问题就是,运行后,我在这个"TEXTBOX"里输入文字,后台取不到,我觉得也取不到,因为虽然有了TEXT属性,但是我不知道如何在输入文字后的哪个事件中来给TEXT属性赋值

解决方案 »

  1.   

    1.首先你的viewstate是否有问题,意思是是否禁用
    2.看看你是如何取TextBox的值的
    3.能不能看看代码是如何写的
      

  2.   

    你代码呢?根据你的情况,一般需要实现 System.Web.UI.IPostBackDataHandler 接口
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Text;using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Globalization;using System.ComponentModel;
    using System.Web.UI;namespace ClassLibrary1
    {
        [DefaultProperty("Text")]
        [ToolboxData("<{0}:MyControl runat='server' ID='my1' ></{0}:MyControl>")]
        public class MyControl : WebControl
        {
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                set { ViewState["Text"] = value; }
                get { return (ViewState["Text"] == null) ? string.Empty : ViewState["Text"].ToString(); }
            }
            protected override void RenderContents(HtmlTextWriter writer)
            {
                writer.Write(Text);
            }
            protected override void Render(HtmlTextWriter writer)
            {
                writer.Write("<input type='text' name='texts' id='text1' value='" + Text + "'/>");
            }
           
        }
      
    }这是我的代码,貌似楼上说那个接口有些用处