介绍
在ASP.NET的新闻组上,我们看到很多关于怎样将服务器端控件和DataGrid结合使用的问题,本文旨在介绍怎样将一些典型的服务器端控件和DataGrid结合的问题,同时,本文将给出几个简单实用的举例来具体介绍它们的使用。
 
为什么要使用Web Forms
最显而易见的功能是为了编辑DataGrid中的数据。它能与DataGrid完美结合来实现数据输入等功能,当然,它不只是为了编辑数据。
 
DataGrid说明
本文所有举例都将使用以下DataGrid:
<asp:DataGrid id="dg" runat="server"
Bordercolor="black"
gridlines="vertical"
font-names="Arial"
font-size="10pt"
HeaderStyle-BackColor="#FFCC00"
ItemStyle-BackColor="#FFCC66"
AlternatingItemStyle-BackColor="#FFFFFF"
AutoGenerateColumns="False">
 
<Columns>
 
</Columns>
</asp:datagrid>
以上DataGrid并不能直接使用,我们需要和具体应用结合。在这里,我们主要目的是知道这个DataGrid的一些具体设置情况。
 
TemplateColumn
我们知道,有很多方法可以显示一些特殊的数据列,比如使用boundcolumns, hyperlinkcolumns等。然而,使用TemplateColumn可以帮助我们实现更多功能,看以下几个举例:
CheckBox / CheckBoxList
CheckBox可以被用于选择一个数据(事情)的状态是真、假等,由于其很直观的使用“勾”和“叉”来表示真、假,所以,往往比一个简单的“Yes”和“No”更加受欢迎。在DataGrid中,我们可以使用CheckBox来实现很好的数据删除功能,首先,我们让访问者选择需要删除的数据,然后在DataGrid的底部提供一个数据删除提交按钮,这样的删除功能用户比较不容易出错。来看一个举例:
<asp:templatecolumn>
<itemtemplate>
<asp:checkbox runat="server" Checked='<%# DataBinder.Eval(Container.DataItem("Married")) %>' Enabled="False" id="chk1" />
</itemtemplate>
</asp:templatecolumn>
程序执行效果如下:

以上程序中,CheckBox用于显示数据字段Married,如果该数据字段为真,CheckBox为勾;如果为假,CheckBox为叉。我们发现,使用CheckBox来表现数据字段的真假很直观。
RadioButton / RadioButtonList
RadioButton的使用,我们可以参考以下代码:
<asp:templatecolumn>
<edittemplate>
<asp:radiobuttonList runat="server">
<asp:listitem value="Trek">Star Trek</asp:listitem>
<asp:Listitem value="Wars">Star Wars</asp:listitem>
</asp:radiobuttonlist>
</edittemplate>
</asp:templatecolumn>
程序执行效果如下:

什么时候使用TemplateColumns
本文所有举例都使用templatecolumn来显示数据。尽管不是所有数据显示都是使用templatecolumn,但是,当我们需要对DataGrid具有较多控制的时候,就必须使用它。比如,
HyperLink column只许显示一列数据,当我们需要显示更多的时候,就必须使用templatecolumn了,代码如下:
<asp:templatecolumn>
<itemtemplate>
<a href=../view.aspx?id=<%# DataBinder.Eval(Container.DataItem("ID")) %>><%# DataBinder.Eval(Container.DataItem("ID")) & DataBinder.Eval(Container.DataItem("Name"))%></a> </itemtemplate>
</asp:templatecolumn>
 
数据验证
程序的严谨最起码也是最常见的就是提交前的数据验证,在DataGrid中使用Web Forms也有这个要求:
<asp:templatecolumn>
<itemtemplate>
<%# Container.DataItem("Age") %>
</itemtemplate>
<edititemtemplate>
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtAge" ErrorMessage="Invalid input for Age"
ValidationExpression="[0-9]{2}" /><br>
<asp:textbox runat="server" id="txtAge" value='<%# DataBinder.Eval(Container.DataItem("Age")) %>' />
</edititemtemplate>
</asp:templatecolumn>
以上代码要求输入的年龄字段(Age)只能为两位的数字,我们来看执行效果:

上图我们看到,不能通过验证数据将不被提交。
 
总结
Web Forms在DataGrid中的使用能简化程序界面的复杂程度,提高程序可用性。但是,如果使用不当,反而会增加程序执行时间,占用系统资源。所以,使用的时候,我们应该根据程序特点采用适当方式。

在DataGrid中帮定CheckBox和RidaoBox相关推荐

  1. 用js 判断datagrid 中的 checkbox 是否被选中

    private void Page_Load(object sender, System.EventArgs e)         {             // 在此处放置用户代码以初始化页面   ...

  2. 选择DataGrid中的CheckBox控件后该行背景变色

    在网络开发中,经常遇到需要使用ASP.NET与JavaScript联合进行控制的情况.在本篇中,将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色 ...

  3. ASP.NET与JavaScript联合操作之一 选择DataGrid中的CheckBox控件后该行背景变色

    在网络开发中,经常遇到需要使用ASP.NET与JavaScript联合进行控制的情况.在本篇中,将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色 ...

  4. DataGrid中加入CheckBox,并实现单选

    原理就是用JS遍列所有CheckBox把所有CheckBox设为未被选中,然后在把单击的CheckBox设为选中 以下是.ASPX文件 <%@ Page language="c#&qu ...

  5. DataGrid中加入CheckBox,并实现单选 选择自 listhome 的 Blog

    原理就是用JS遍列所有CheckBox把所有CheckBox设为未被选中,然后在把单击的CheckBox设为选中 以下是.ASPX文件 <%@ Page language="c#&qu ...

  6. easyui datagrid 多列checkbox

    需求 如图,实现表格中多列复选框,做[选中].[取消]操作时勾选与取消复选框. 前端 <body> <div id="datagrid_toolbar">& ...

  7. DataGrid梆定DroDownList

    <Columns>       <asp:TemplateColumn HeaderText="冲印规格">        <HeaderStyle ...

  8. [原创] CSS自定义IOS苹果,Android安卓的CheckBox 效果,可以根据文字大小变化而变化,内框显示文字,另外可自定大小,自定颜色...

    在经过对网上一些自定CheckBox的一番研究之后,现在综合讲一下该样式实现的技巧. 先上图: 图中已展示了多种样式,实现的原理很简单,一个外Box,一个内Box,外Box显示背景色,内Box显示白色 ...

  9. jQuery EasyUI DataGrid Checkbox 数据设定与取值

    纯粹做个记录,以免日后忘记该怎么设定. 这一篇将会说明两种使用 jQuery EasyUI DataGrid 的 Checkbox 设定方式,以及在既有数据下将 checked 为 true 的该笔数 ...

最新文章

  1. HDU-3746-Cyclic Nacklace
  2. [转载]学习数据库分表和分库思想
  3. 程序员面试100题之二:跳台阶问题(变态跳台阶)
  4. Java基础查漏补缺(2)
  5. 机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)
  6. java s.charat_Java中s.charAt(index)用于提取字符串s中的特定字符操作
  7. Win11未检测到Logitech Unifying接收器的解决方法
  8. Intellij Idea选中内容后Backspace删除无法使用,Ctrl+c/Ctrl+v/Ctrl+s/Ctrl+d等等快捷键无法使用的问题的解决
  9. 算法面试题:均分纸牌
  10. 网页中返回顶部代码及注释说明
  11. 仿豆丁flashpaper 网页flash文档播放调用文档资料收集
  12. 计算机内存不够玩不了游戏,电脑玩游戏内存不够怎么解决
  13. python中单引号的作用_Python中单引号,双引号,3个引号的用法
  14. FPGA引脚功能说明与分析
  15. Vue项目实战:订单确认页面实现
  16. Centos7 lvm
  17. B站陈睿说:“B站也是个学习APP”!亲测还很好学
  18. 嵌入式开发——brctl命令实现桥接上网
  19. Python日期时间差的计算(天/小时/分钟)及timedelta函数的使用(附python代码)
  20. 输出一百,十万,一百万,一千万,一亿,十亿,二十亿以内的所有质数的方法,个数和优化后的运行时间对比

热门文章

  1. 网络安全实验八 数字签名验证实验
  2. pads栅格捕捉间距怎么设置
  3. 《硬件仿真(Emulation)EDA工具前端设计流程》
  4. ubuntu 网络无法连接
  5. axure中怎么把图片变圆_Axure 给Image部件设置本地图片
  6. 分布式系统设计_分布式系统的设计审查清单
  7. 虚拟机打开后黑屏且无法关闭
  8. JZOJ 5781 秘密通道
  9. 2018 碎片化技术学习捷径持续精进~
  10. js 中定义的 全局变量,局部变量