")]public class XText : System.Web.UI.WebControls.WebControl{" />
您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 自定义服务器控件 aspnet20自定义控件取值问题…

自定义服务器控件 aspnet20自定义控件取值问题…

来源:网络整理     时间:2016/7/18 13:38:10     关键词:自定义服务器控件

关于网友提出的“自定义服务器控件 aspnet20自定义控件取值问题…”问题疑问,本网通过在网上对“自定义服务器控件 aspnet20自定义控件取值问题…”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:自定义服务器控件 aspnet20自定义控件取值问题…
描述:

控件代码:


namespace MyControls
{
    [
        System.Web.UI.ToolboxData("<{0}:XText runat=\"server\" />")
    ]
    public class XText : System.Web.UI.WebControls.WebControl
    {
        /// 
        /// 控件value
        /// 

        [
            System.ComponentModel.Bindable(false),
            System.ComponentModel.Browsable(true),
            System.ComponentModel.Category("Behavior"),
            System.ComponentModel.DefaultValue(""),
            System.ComponentModel.Description("控件文本")
        ]
        public string Value
        {
            get { return _value; }
            set { _value = value; }
        }
        private string _value = "";
        protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)//Contents
        {
            
            string outhtml = "
"; 
            outhtml += "";
            outhtml += "
"
            outhtml += "var ___" + ID + "=new XText(\"" + ID + "\");";
            writer.Write(outhtml);
        }
    }
}

问题:

我想把input输入框的值作为控件的值,然后在服务端能用this.XText1.value来访问控件的值,可是在服务端用this.XText1.value来取值总是为空……
控件需要怎么写才能把input输入框的值作为控件的值可以用this.XText1.value在服务端取到值??也就是当客户端改变input输入框的值,页面提交时能用this.XText1.value取到input输入框的值!
大侠们给指点指点吧……
解决方案1:

写个属性 。。。

解决方案2:

学习学习

解决方案3:

是因为你对视图状态不了解才导致这样的错误
应该用ViewState来保存对像对是
改成如下:


namespace MyControls
{
    [
        System.Web.UI.ToolboxData("<{0}:XText runat=\"server\" />")
    ]
    public class XText : System.Web.UI.WebControls.WebControl
    {
        /// 
        /// 控件value
        /// 

        [
            System.ComponentModel.Bindable(false),
            System.ComponentModel.Browsable(true),
            System.ComponentModel.Category("Behavior"),
            System.ComponentModel.DefaultValue(""),
            System.ComponentModel.Description("控件文本")
        ]
        public string Value
        {
            get { object o = ViewState["Text"]; return (o == null ? "" : (string)o); }
            set { ViewState["Text"] = value; }
        }
        private string _value = "";
        protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)//Contents
        {
            
            string outhtml = "
"; 
            outhtml += "";
            outhtml += "
"
            outhtml += "var ___" + this.ClientID + "=new XText(\"" + this.ClientID + "\");";
            writer.Write(outhtml);
        }
    }
}

上面的代码,ID不应该直接加,应该用this.ClientID 解决方案4:

修改一下两个地方:


        public string Value
        {
            get { return Request.Form[this.UniqueID + "_txt"]; }
            set { _value = value; }
        }


outhtml += "";
解决方案5:

这个问题,建议你买一本专门讲控件开发的书看看吧。这个话题非常之宽广,在帖子里面只能说到一部分,你想要按照最正规的方式来开发的话,还是看书吧。

解决方案6:

[Bindable(true), 
Category("Appearance"), 
DefaultValue("")] 
        public string Text 
        { 
            get 
            { 
                string _text = (string) ViewState["Text"]; 
               return _text==null?"":_text; 
            } 
            set 
            { 
                string text = ""; 
                text = value; 
                text = text.Replace("'","’"); 
                ViewState["Text"] = text; 
            } 
        } 
string outhtml = "

"; 
            outhtml += "";
            outhtml += "

"
            outhtml += "var ___" + this.ClientID + "=new XText(\"" + this.ClientID + "\");";
            writer.Write(outhtml);
解决方案7:

写个属性。。。

解决方案8:

XText c /> control.Value="设置我的值";


以上介绍了“自定义服务器控件 aspnet20自定义控件取值问题…”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2773321.html

上一篇我做的下载功能不能使用迅雷(急啊,在线等) 下一篇客户端与服务器之间的通信问题

自定义服务器控件相关图片

自定义服务器控件相关文章