这几天Insus.NET有写几篇博文,虽然写得没怎么样,但均是Insus.NET现实开发过程中所遇或是所想的一些内容。
没有什么,开发ASP.NET时随便写写,想到什么写什么http://www.cnblogs.com/insus/p/3810032.html
跟用户沟通,问题尽量分析清楚,以及解决问题http://www.cnblogs.com/insus/p/3813185.html
ASP.NET开发,且编且改,分清职责http://www.cnblogs.com/insus/p/3817682.html

昨天又在论坛上看到一网友对Web控件的实现需求:
"就是页面上有一个checkboxlist控件,一个查询按钮,首次加载时checkboxlist是全选状态的,点击查询以后选择的值就被清空了,我现在是想保持选择的值的状态。"

Insus.NET再以此为例,写一写ASP.NET的开发过程,怎样一步一步实现,代码是怎样尽量写得通俗易懂明了。再加上Web控件没有什么所谓好不好,而是用得好不好

很早之前,Insus.NET就有写过一篇《Asp.net >> CheckBoxList控件http://www.cnblogs.com/insus/archive/2011/06/17/2081639.html 很多地方还是值得参考的地方。

解决此问题,还是一步一步来,急之不了。

在xxx.aspx网页上,拉两个控件,一个为CheckBoxList,另一个为Button按钮。

既然有用到CheckBoxList控件,那我们需要为之准备数据源,其实你可以在.aspx网页直接接,不过Insus.NET还是习惯在aspx.cs后程序中写。当然这些数据源还是可以从数据库中某一个表获取。

准备这些数据,Insus.NET还是建议准备有key和value的数据。真实环境中,应用到这些数据,均是被另一个表作为外键引用。
准备好数据,接下来当然是为CheckBoxList控件绑定了。

写一个私有方法Data_Binding()。然后引用至Page_Load事件内。有一点注意,需要用IsPostBack是否回发判断来绑定。

现在是重点解决问题,CheckBoxList控件中,哪些选择是被选择的?不管是在网页一加载,还某一事件处理,我们需要用一个集来存储。上面提供的链接中,也有相似的方法,不过此次Insus.NET用另外一种方法,让你多一种参考:

OK,现在我们可以在按钮的事件中,去把CheckBoxList控件所选择的值存储起来:

其实这样,程序并不会在网页加载时,把铵钮点击之前的CheckBoxList所选择的值重新绑定在控件之上。因此我们需要稍微修改一下Data_Binding()方法:

上面高亮块代码。
想把代码写好些,有时你可以让if关键词不出现在程序上。改之:

OK,写得差不多了,重新检查重个功能的代码,还一点还是让Insus.NET不舒服的,就是Session,因为Session的名字,在代码中,有三处地方出现。写程序时,我们需要来回检查或是复制Session名字。以后可以作为一个习惯,把Session写成一个属性:

这样子,在程序中有引用这个Session的地方,就可以改用为属性了,做到了封装:

实时演示:

WEB控件没有什么所谓好不好,而是用得好不好的更多相关文章

  1. 2015.2.16 关于delphi web控件打开新网页时弹出关闭页面(js代码)出错的解决办法研究

    参考网址1:http://www.csharpwin.com/csharpspace/2360.shtml...参考网址2:http://www.oschina.net/question/234345 ...

  2. 033. asp.netWeb用户控件之二将页面转换成web控件和使用Web控件显示热点新闻

    访问Web用户控件的属性 ASP.NET提供的各种服务器控件都有其自身的属性和方法,程序开发人员可以灵活地使用服务器控件中的属性和方法开发程序.在用户控件中,程序开发人员也可以自行定义各种属性和方法, ...

  3. [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)

    @ ^ @:如果是加载到web控件上,就把注释掉的解除注释(改为web控件点后面的函数),把下一句注释 BOOL Button::LoadFromResource(UINT nRes){//打开网页加 ...

  4. 译:c#生成条码的web控件

    译文:http://www.codeproject.com/Tips/846860/Csharp-Barcode-Generator-Web-Control 在asp.net的web页用c#的web控 ...

  5. Javascript语法去控制Web控件的Enabled属性

    Web控件当使用Enabled属性时,它生成html之后会变成了disabled了.我们为了能够在javascript去控制控件的禁用与启用,得从这个disabled入手.如:

  6. Web控件文本框Reset的功能

    在前一篇中<怎样实现Web控件文本框Reset的功能>http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能.单个或 ...

  7. 怎样实现Web控件文本框Reset的功能

    在ASP.NET开发过程序,在数据插入之后,文本框TextBox控件需要Reset.如果只有一两个文件框也许没有什么问题,如果网页上有很多文本框,你就会有点问题了.再加上某一情形,一些文本框是有默认值 ...

  8. 基本的Web控件四

    基本的Web控件用法二 ListBox控件 页面布局: <div> <h1>ListBox控件</h1> 学生列表: <br/> <asp:Lis ...

  9. 基本的Web控件三

    基本的Web控件用法一 ListBox控件 页面布局: <div> <h1>ListBox控件</h1> 学生列表: <br/> <asp:Lis ...

随机推荐

  1. centos下网口vlan设置

    如果要使vlan之间进行通信,我们通常会使用三层交换机或者路由器子接口模式来做.Linux上关于VLAN与Cisco交换机中继连接,也是可以实现其互相之间的通信的. 环境:RHEL 5.2 最小化安装 ...

  2. 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用(转载)

    加密技术通常分为两大类:"对称式"和"非对称式". 对称性加密算法:对称式加密就是加密和解密使用同一个密钥.信息接收双方都需事先知道密匙和加解密算法且其密匙是相 ...

  3. SignalR 设计理念(一)

    SignalR 设计理念(一) 实现客户端和服务器端的实时通讯. 问题阐述 客户端提供的方法不确定! 客户端的方法参数不确定! 不同的名称和参数要分别调用指定的方法! 调用客户端方法时,忽略大小写! ...

  4. file_put_contents 换行

    file_put_contents('test.text', json_encode($result) . PHP_EOL, FILE_APPEND);

  5. 移动端测试接口--Fiddler抓包工具

    Fiddler抓包工具是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视.设置断 ...

  6. [Leetcode]120.三角形路径最小和

    ---恢复内容开始--- 题目的链接 简单的动态规划题,使用了二维dp数组就能很好的表示. 由于有边界的问题,所以这个dp数组为 dp[n+1][n+1]. dp[i][j]意思是终点为(i-1,j- ...

  7. Python 多进程 多线程 协程 I/O多路复用

    引言 在学习Python多进程.多线程之前,先脑补一下如下场景: 说有这么一道题:小红烧水需要10分钟,拖地需要5分钟,洗菜需要5分钟,如果一样一样去干,就是简单的加法,全部做完,需要20分钟:但是, ...

  8. (转)关于python3中staticmethod(静态方法)classmethod(类方法)实例方法的联系和区别

    原文:http://dmcoders.com/2017/08/30/pythonclass/ https://zhuanlan.zhihu.com/p/28010894------正确理解Python ...

  9. gvim配置相关

    用 vundle 来管理 vim 插件(包含配置文件vimrc和gvimrc) gvim插件管理神器:vundle的安装与使用 Vim插件管理Vundle Linux 下VIM的配置 Vim配置系列( ...

  10. C# 泛型类在使用中约束

    首先看一下泛型的基本语法 访问修饰符 返回类型 泛型方法名 <T>(T 参数)   1):无法在泛型方法内部给任何 T 类型创建实例的对象,因为在泛型方法内部不知道传进来的对象有哪些构造函 ...