首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

这个小弟我自己编的自定义控件

2012-02-14 
请高手看看这个我自己编的自定义控件我这个控件可以调用,就是无法正确显示控件.请高手帮忙看看!namespacem

请高手看看这个我自己编的自定义控件
我这个控件可以调用,就是无法正确显示控件.请高手帮忙看看!
namespace   mycontrol
{
using   System;
using   System.Collections.Generic;
using   System.ComponentModel;
using   System.Text;
using   System.Web;
using   System.Web.UI;
using   System.Web.UI.WebControls;

        [DefaultProperty( "Text ")]
        [ToolboxData( " <{0}:mycontrol   runat=server> </{0}:mycontrol> ")]

        public   class   mycontrol   :   CompositeControl
        {
               
                [Bindable(true)]
                [Category( "Appearance ")]
                [DefaultValue( " ")]
                [Localizable(true)]
                public   string   textbox1
                {
                        get
                        {
                                String   s   =   (String)ViewState[ "Text "];
                                return   ((s   ==   null)   ?   String.Empty   :   s);
                        }

                        set
                        {
                                ViewState[ "Text "]   =   value;
                        }
                }
                public   string   textbox2
                {
                        get
                        {
                                String   s   =   (String)ViewState[ "Text "];
                                return   ((s   ==   null)   ?   String.Empty   :   s);
                        }

                        set
                        {
                                ViewState[ "Text "]   =   value;
                        }


                }
                protected   override   void   CreateChildControls()  
                {
                        this.Controls.Clear();
                        Label   lab1   =   new   Label();
                        lab1.Text   =   "用户名 ";
                        this.Controls.Add(lab1);
                        Literal   lit   =   new   Literal();
                        lit.Text   =   ": ";
                        this.Controls.Add(lit);
                        TextBox   textbox1   =   new   TextBox();
                        textbox1.ID= "tb1 ";
                        textbox1.Text   =   textbox1.ToString();
                        this.Controls.Add(textbox1);
                        Literal   lit1   =   new   Literal();
                        lit1.Text   =   " <\br> ";
                        Label   lab2   =   new   Label();
                        lab2.Text   =   "密码 ";
                        this.Controls.Add(lab2);
                        Literal   lit2   =   new   Literal();
                        lit2.Text   =   ": ";
                        this.Controls.Add(lit2);
                        TextBox   textbox2   =   new   TextBox();
                        textbox2.ID   =   "tb2 ";
                        textbox2.Text   =   textbox2.ToString();
                        this.Controls.Add(textbox2);
                        Literal   lit4   =   new   Literal();
                        lit4.Text   =   " <\br> ";
                        Button   button1   =   new   Button();


                        button1.Text   =   "确定 ";
                        this.Controls.Add(button1);
                        Literal   lit3   =   new   Literal();
                        lit3.Text   =   " ";
                        Button   button2   =   new   Button();
                        button2.Text   =   "取消 ";
                        this.Controls.Add(button2);
                        base.CreateChildControls();

                }
                protected     override   void   Render(HtmlTextWriter   writer)
                {
                        if   (ChildControlsCreated   ==   false)  
                        {
                                this.CreateChildControls();
                                this.RenderContents(writer);
                        }                      
                }
        }
}

[解决办法]
你这个是复合控件,不过根据你的需求来看不需要做成复合控件,直接在render里输出那堆东西就可以了,如果要post的话,就继承一个IPostBackEventHandler接口就可以了
[解决办法]
String s = (String)ViewState[ "Text "];
==================
这句有错,若果viewstate[ "text "]为空强制转化,会引发异常
[解决办法]
textbox1和textbox2操纵的是同一个viewstate对象

[解决办法]
建义LZ在重写Render时调用下Base.Render()

热点排行