这几天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. Swagger ui测试中的验证 apikey

    Swagger ui测试中的验证 apikey 我们使用swagger 用来呈现webapi的接口,除了可以看到接口的说明和参数说明,还可以进行测试.但是我们的接口通常是有验证的,不是随便就能调用的, ...

  2. Win7下无法启动sql server fulltext search (mssqlserver)的问题

    在Win7下安装了SQL Server 2005, 但启动“SQL Server FullText Search (MSSQLSERVER)”服务时启动不成功,系统日志显示“SQL Server Fu ...

  3. VS2017 v15.8.0 Task ExpandPriContent failed. Illegal characters in path

    昨天更新了VS到最新版本v15.8.0,但是编译UWP出现了操蛋的bug. 谷歌一下,vs社区已经有答案了. 打开.csproj文件,在节点 <PropertyGroup> 里面,加上一行 ...

  4. CentOS 7 - 安装MySQL 5.7

    CentOS 7的默认yum仓库中并没有MySQL5.7,我们需要手动添加,好在MySQL官方提供了仓库的地址,所以我们能够比较简单地安装MySQL. 本文我们将介绍CentOS 7下MySQL5.7 ...

  5. java多线程面试题整理及答案(2018年)

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速.比如,如果一个线程完 ...

  6. [学习笔记]BSGS

    \(\%\%\% Fading\) 早就会了,我最近才理解,当时颓废太多忘学了 1.[SDOI2013]随机数生成器 当天正好在学数列,回来发现用必修五的知识就没了-- 不过特判好烦啊. \(Code ...

  7. Java并发编程总结3——AQS、ReentrantLock、ReentrantReadWriteLock

    本文内容主要总结自<Java并发编程的艺术>第5章——Java中的锁. 一.AQS AbstractQueuedSynchronizer(简称AQS),队列同步器,是用来构建锁或者其他同步 ...

  8. 带你走进二进制-一次APT攻击分析

    原文:https://osandamalith.com/2017/06/04/apt-attack-in-bangladesh/ 由prison翻译整理,首发i春秋   引言;   这是一次来自遥远国 ...

  9. Postgres 的 Range 类型

    mysql 不支持 Range 类型 零.介绍 1. 适用场景: a.可以用于实现 是否满足薪资需求 的功能 b.可以用于实现 是否符合上线时间 的功能 一.定义 1.类型范围 Postgres Se ...

  10. dubbo+zookeeper注册服务报错问题:No service registed on zookeeper

    2019-04-04 11:23:40,372 ERROR [tomcat-threads--1] (com.bill99.dolphin.controller.ExceptionController ...