Web控件文本框Reset的功能

在前一篇中《怎样实现Web控件文本框Reset的功能http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能。单个或是多个,有默认值与无值。只要用户点击重置(Reset)时,我们就要以对Web控件进行重置。

参考博文,其实你完全可以写出其它的控件的重置功能来。如DropDownLsit,ListBox,CheckBox,CheckBoxList,RadioButtonList等等。

想实现什么控件Reset功能,均需要创建一个自定义类,并继承它。

下面是CheckBox控件:



ListBox控件Reset功能:



CheckBoxList控件:


DropDownList控件:

 
RadioButtonList控件:

下面是分别使用程序来演示:

 <asp:TextBox ID="TextBox1" runat="server" Text="Leo"></asp:TextBox><br />          

            <asp:DropDownList ID="DropDownList1" runat="server">
                <asp:ListItem Value="A" Text="A"></asp:ListItem>
                <asp:ListItem Value="B" Text="B"></asp:ListItem>
                <asp:ListItem Value="C" Text="C"></asp:ListItem>
                <asp:ListItem Value="D" Text="D"></asp:ListItem>
                <asp:ListItem Value="E" Text="E"></asp:ListItem>
                <asp:ListItem Value="F" Text="F"></asp:ListItem>
                <asp:ListItem Value="G" Text="G"></asp:ListItem>
            </asp:DropDownList><br />

            <asp:CheckBox ID="CheckBox1" runat="server" /><br />

            <asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="7">
                <asp:ListItem Value="A" Text="A"></asp:ListItem>
                <asp:ListItem Value="B" Text="B"></asp:ListItem>
                <asp:ListItem Value="C" Text="C"></asp:ListItem>
                <asp:ListItem Value="D" Text="D"></asp:ListItem>
                <asp:ListItem Value="E" Text="E"></asp:ListItem>
                <asp:ListItem Value="F" Text="F"></asp:ListItem>
                <asp:ListItem Value="G" Text="G"></asp:ListItem>
            </asp:CheckBoxList><br />

            <asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatColumns="3">
                <asp:ListItem Value="A" Text="A"></asp:ListItem>
                <asp:ListItem Value="B" Text="B"></asp:ListItem>
                <asp:ListItem Value="C" Text="C"></asp:ListItem>
            </asp:RadioButtonList><br />

            <asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple">
                <asp:ListItem Value="A" Text="A"></asp:ListItem>
                <asp:ListItem Value="B" Text="B"></asp:ListItem>
                <asp:ListItem Value="C" Text="C"></asp:ListItem>
                <asp:ListItem Value="D" Text="D"></asp:ListItem>
                <asp:ListItem Value="E" Text="E"></asp:ListItem>
            </asp:ListBox><br />

            <asp:Button ID="Button1" runat="server" Text="Reset" OnClick="Button1_Click" />
View Code

 

现在写Reset铵钮事件,不能照搬前一篇的方法,但需要修改一下,因为所有自定义都有实作了接口IResetControlable。



动态操作演示一下:

 
上面所有控件演示中,仅列出一个,如果在一个铵钮事件,针对多控件时,我们又需要怎样去优化上面的程序,哪些需要修改,哪些不需要动了。其实asp.net开发中,使用控件才更多机会学到面向对象的技术和知识。



下面内容于2014-11-27 08:40分补充:
由于ListBox,CheckBoxList,DropDownList和RadioButtonList等控件是继承了ListControl类,因此可以把它们归为一个Adapter类:


写一个全新ListControlReset类:



这样子,就可以把下面几个Adapter类删除了:



最后程序可以重构为:


这样无需再单独写自己独立的Adapter类。

posted @ 2014-11-26 17:03  Insus.NET  阅读(1182)  评论(0编辑  收藏  举报