| 在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='<%# 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=<%# Container.DataItem("ID") %>><%# Container.DataItem("ID") & 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='<%# Container.DataItem("Age") %>' /> |
| </edititemtemplate> |
| </asp:templatecolumn> |
| 以上代码要求输入的年龄字段(Age)只能为两位的数字,我们来看执行效果: |
|
|
| 上图我们看到,不能通过验证数据将不被提交。 |
| 总结 |
| Web Forms在DataGrid中的使用能简化程序界面的复杂程度,提高程序可用性。但是,如果使用不当,反而会增加程序执行时间,占用系统资源。所以,使用的时候,我们应该根据程序特点采用适当方式。 |
DataGrid与WebForms整合技巧
本文介绍如何在ASP.NET中结合使用DataGrid与WebForms控件,包括使用CheckBox、RadioButton进行数据展示与编辑,利用TemplateColumn实现多功能数据列及进行数据验证的方法。



44

被折叠的 条评论
为什么被折叠?



