这几天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. MacOS统计TCP/UDP端口号与对应服务

    1.TCP端口 echo "### TCP LISTEN ###" lsof -nP -iTCP -sTCP:LISTEN 2.UDP端口 echo "### UDP L ...

  2. 利用gotty在web浏览器模拟终端登录

    1.随机url,9000端口访问 gotty -p " -r -w bash -i 2.简单用户名密码授权,9090端口访问 gotty -p -c user:password -w bas ...

  3. FluentAPI详细用法

    设置主键 modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键 modelBuilder.Entity<x>().Ha ...

  4. PowerDesigner执行脚本 name/comment/stereotype互转

    执行方法:工具栏->Tools -> Execute Commands -> Edit/Run Script (Ctrl+Shift+X) 如下图所示: 1.Name转到Commen ...

  5. 浏览器环境下JavaScript脚本加载与执行探析之defer与async特性

    defer和async特性相信是很多JavaScript开发者"熟悉而又不熟悉"的两个特性,从字面上来看,二者的功能很好理解,分别是"延迟脚本"和"异 ...

  6. Codeforces Round #479 (Div. 3)解题报告

    题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...

  7. win下wamp虚拟主机配置

    第一步:在http://www.wampserver.com/网站上下载Wampserver,可以根据计算机的版本(32位或者64位)下载对应的版本 第二步,傻瓜式安装(直接点击下一步,下一步就好). ...

  8. String不得不说的那些事

    一.String.StringBuilder和StringBuffer的区别 1. String是字符串常量,StringBuilder和StringBuffer是字符串变量 String对象创建完成 ...

  9. Odoo 学习地址

    Odoo官文文档: https://www.odoo.com/zh_cn/page/docs http://www.odoo.com/documentation/8.0/ Odoo中文文档推荐: ht ...

  10. VS 插件 Productivity Power Tools - 更改 选项卡组件位置

    Visual Studio 2013怎么把选项卡设置在左侧显示?vs中选项卡默认显示在顶部,但是更习惯显示在左侧,该怎么设置呢?为了更方便使用,下面分享VS2013选项卡设置在左侧显示的图文教程 Vi ...