本文英文原版:
http://aspnet.4guysfromrolla.com/articles/052202-1.aspx
考察DataGrid控件: Part 4 (上)
导言:
在Part 3,我们考察了相关的事件,例如点击按钮时的情况.再比如在演示页面里,我们允许用户点击"Details"按钮来显示特定行的详细信息,在本节我们考察对数据排序.
准备对DataGrid排序
对DataGrid控件添加排序功能是很简单的,按下面3步走:
1.将DataGrid控件的AllowSorting属性设为True.如果DataGrid的AutoGenerateColumns属性为False,为BoundColumn控件的SortExpression指定值,以便用户以此排序.
2.创建一个排序事件处理器(sort event handler),并在DataGrid的OnSortCommand事件里指定该处理器的名字。
3.构建函数以获取数据
我们一个一个的来.第一步,你需要在DataGrid里指定AllowSorting属性的值,比如:
<asp:DataGrid runat="server" id="id"
AllowSorting="True"
... >
...
</asp:DataGrid>
如果AutoGenerateColumns属性被设置为True(默认值),那么第一步就算完了.(如果设为True,DataGrid就将数据源绑定的列全部显示出来;如果是False,你就要通过BoundColumn来指定需要显示哪些列,具体内容可参考Part 2)。当AutoGenerateColumns属性确实是False时,我们需要确定允许用户依据哪些列来排序。对哪些要排序的列,在对应的BoundColumn里添加SortExpression属性.记住,你必须将SortExpression属性指定为对应的数据库列的名字:
<asp:DataGrid runat="server" id="id"
AutoGenerateColumns="False"
AllowSorting="True">
<Columns>
<asp:BoundColumn DataField="dbField" />
<asp:BoundColumn DataField="dbField2"
SortExpression="dbField2" />
</Columns>
</asp:datagrid>
上述DataGrid代码包含2个列,一个绑定到数据库的dbField列,另一个绑定到dbField2列。后者允许排序而前者不行(因为后者包含SortExpression属性)
创建一个排序处理器
将DataGrid的AllowSorting属性设为True后,每列的表头都会呈现一个超链接,当点击它时,发生页面回传,触发排序事件(sort event).当触发该事件后,我们需要有一个事件处理器来将排好序的数据重新绑定到DataGrid.为了顺序执行上述流程,我们要做2件事情:创建一个排序事件处理器,并且指定DataGrid的排序事件调用该处理器.
首先,当创建处理器时,你必须使用如下的定义:
Sub SortEventHandler(sender as Object, e as DataGridSortCommandEventArgs)
...
End Sub
(当然,你可以为变量sender 和 e任意命名,重要的是明确你的处理器接受2个变量,一个为Object,另一个为DataGridSortCommandEventArgs )
在你的事件处理器里,你可以通过e.SortExpression获取基于排序的列的列名.如果你在一个BoundColumn里明确的指定了SortExpression属性,那么e.SortExpression的值就是SortExpression属性的值;如果没有指定SortExpression属性(比如你将AutoGenerateColumns属性设为True),那么e.SortExpression的值就是你点击的那个列的对应的数据库列的列名。
当创建好排序处理器后,你需要将它与DataGrid控件的排序事件联系起来.这样一来,当触发排序事件时便引发相应的事件处理器.为此,你只需要将DataGrid的OnSortCommand属性设置为你创建的事件处理器的名字,如下:
<asp:DataGrid runat="server" id="id"
AllowSorting="True"
OnSortCommand="NameOfSortEventHandler">
...
</asp:DataGrid>
我们分两种情况来考察,第1个演示页面将AutoGenerateColumns属性设为True(演示页面http://aspnet.4guysfromrolla.com/demos/dgExample10.aspx);另一个设为False(演示页面为http://aspnet.4guysfromrolla.com/demos/dgExample9.aspx).这两个示例都将AllowSorting属性设为True,并对应一个简单的排序事件处理器,该处理器暂时只是指定了一个label控件,并将其Text属性赋值为e.SortExpression.我们注意到DataGrid控件包含在一个服务器端的form(<form runat="server"> ... </form>)——这点很重要,因为在这里我们要处理页面回传的情况.
现在我们需要创建一个函数以获取排好序的数据,创建好后我们只需要简单的调用该函数,传递SortExpression,将结果传递给DataGrid的数据源(DataGrid's DataSource),并且重新绑定到DataGrid(通过DataBind()方法).我们在下半部分来详细探讨.
分享到:
相关推荐
在资源编辑器中,可以拖拽DataGrid控件到对话框上,并设置其属性,如ID、位置、大小、字体、颜色等。在代码中,可以通过CDataGridCtrl类创建并初始化控件。 三、数据绑定 DataGrid控件的数据源可以是各种类型,最...
- DataGrid控件与VB 5.0的DBGrid在代码兼容性上几乎相同,但DataGrid不支持DBGrid的“解除绑定模式”。 3. **可能的应用场景**: - **数据浏览和编辑**:允许用户查看和编辑远程或本地数据库中的数据。 - **数据...
MFC DataGrid 控件用法详解 MFC 中的 DataGrid 控件是一个非常实用的控件,用于显示数据,它提供了很多实用的功能,例如显示查询结果、控制显示、格式化数据等。在这里,我们将详细介绍 MFC DataGrid 控件的用法,...
只需从工具箱中找到`DataGrid`控件并将其拖放到窗体上。确保选择的是“Microsoft DataGrid Control”而不是其他版本或类似的控件。 2. **数据绑定** `DataGrid`控件通常与数据源绑定,这些数据源可以是ADO ...
### VC++中DataGrid控件的使用 #### 一、引言 Microsoft ADODataControl 控件是 ActiveX 控件中用于访问数据库的关键组件。它利用 Microsoft ActiveX 数据对象 (ADO) 快速建立起数据绑定 (Data Binding) 控件与...
"Datagrid 控件"是这样一个控件,常用于显示和操作数据表格式的信息,如数据库中的记录。它允许用户查看、排序和编辑数据,是Windows应用程序开发中常见的组件。 在Windows编程领域,控件通常是通过动态链接库(DLL...
Windows窗体DataGrid控件是NET 1.0/1.1推出的控件,在VS2005中亦可以继续使用,虽然它在功效方面不如NET 2.0新增的控件DataGridView,但它仍有用武之处,特别是对于已完成的项目中使用了该组件时,没有必要更换它,...
对于更复杂的情况,可以使用TemplateField,其中包含其他控件,如Label或TextBox,然后在这些控件上应用格式。 6. **数据源的转换**: 在绑定数据到DataGrid之前,可以先在数据源中转换数据。例如,可以将数据库...
创建DataGrid控件非常简单,只需要在设计视图中从工具箱拖放到表单上。然后,你可以通过设置控件的DataSource属性将其绑定到数据源,如DataTable、DataSet或任何实现了 IEnumerable 的对象。例如: ```csharp ...
4. **定制列显示**:DataGrid控件会自动根据数据源的结构创建列,但我们可以自定义列的显示方式,例如改变列的宽度、数据格式、是否可编辑等,通过设置Column对象的相关属性。 5. **处理用户输入**:DataGrid控件的...
4. **绑定DataGrid控件**:将DataGrid控件放置于窗体,并将其`DataSource`属性设置为步骤2中的ADOData控件,从而实现数据的自动填充和列头的自动设置。 5. **定制界面**:通过设计时的属性设置,调整DataGrid控件的...
在C# WPF开发中,DataGrid控件是用于展示数据集合的重要组件,它提供了丰富的功能,如排序、分页、编辑等。本教程将详细讲解如何利用DataGrid实现三级联动的效果,即在一个DataGrid中更改某一项时,关联的其他两个...
在本主题中,“基于datagrid控件的增删改查及分页实现”是一个常见的需求,特别是在开发数据密集型的Web应用时。下面将详细介绍这个主题中的相关知识点。 1. Flex DataGrid 控件: DataGrid是Flex中一个强大的组件...
在Microsoft Visual C++ (VC++) 开发环境中,ADO(ActiveX Data Objects)和DataGrid控件是用于数据库操作的强大工具。本教程将详细介绍如何利用它们实现对数据库的遍历、修改、删除和添加功能。 首先,ADO是微软...
通过分析和学习"gridctrl227_src"源码,开发者不仅可以掌握datagrid控件的实现细节,还能提高对C++ GUI编程的理解,尤其是在Windows平台上。这不仅对个人技能提升有帮助,也为未来开发自定义控件或参与相关项目打下...
ASP.NET中的DataGrid控件是开发Web应用程序时用于展示数据的关键组件,特别是在处理与数据库相关的数据展示场景。熟练掌握DataGrid控件的应用技巧对于任何Web开发者来说都是至关重要的。 DataGrid控件允许以表格的...
在ASP.NET中,`DataGrid`控件是一个强大的数据展示工具,它允许开发者以表格的形式展示来自数据库或其他数据源的数据。本实例将深入讲解如何使用`DataGrid`控件连接数据库并展示数据。 1. **DataGrid控件简介** `...
用于解决vb6精简版没有datagrid控件的情况 安装完成后,可能出现“该部件的许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能”提示 请运行vb6cli.exe,该软件我已上传至csdn。并且微软官网提供下载。