提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2012-09-26 11:30:36.000|阅读 706 次
概述:有时候客户想要在一个域内对ASPxGridView的栏进行分组,而在另一个域内对其排序。本文中,我想描述一下如何通过不同的方法实现这个特点。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
有时候客户想要在一个域内对的栏进行分组,而在另一个域内对其排序。本文中,我想描述一下如何通过不同的方法实现这个特点。因为,这并不像它可能看起来的那样简单。
在设计时,我们创建了一个简单的网格,它的数据从数据源控件处获得。我们想按城市来对ASPxGridView进行分组,而按国家对它进行排序。
这个任务可以通过以下几种方法来解决:
1.通过自定义栏位排序:按城市将网格分组,但是通过自定义栏位排序事件按国家对其排序。
2.在另一个域内对网格排序:按城市将网格分组,但是通过分组汇总排序信息类按国家对其排序。
3.通过自定义汇总类型对网格排序:按城市将网格分组,但是通过分组汇总排序信息类和自定义汇总计算事件按国家对其排序。
4.通过它们的名字对值进行排序:使用GridViewDataComboBoxColumn文本完成分组。
下面,你可以找到一些关于这些任务的更详细的描述:
1.自定义栏位排序:按城市将ASPxGridView分组,但是通过自定义栏位排序事件按国家对其排序。
要使用这种方法,你应该运用ASPxGridView.CustomColumnSort 事件。一个栏的Settings.SortMode 属性指定了当对这个栏进行排序时,网格的数据是如何被排序的。在我们这个例子中,属性值被设为‘自定义’。因此,一个针对‘城市’栏的自定义排序算法将会 通过处理自定义栏位排序事件被执行。
[ASPx]
<dx:GridViewDataTextColumn FieldName="City" VisibleIndex="2" GroupIndex="0"> <Settings SortMode="Custom"/> </dx:GridViewDataTextColumn>
在自定义栏位排序事件句柄中,我们对两行进行了比较。通过CustomColumnSortEventArgs.Column 参数来指定被处理的栏位。CustomColumnSortEventArgs.Value1 和CustomColumnSortEventArgs.Value2 两个参数区分出在这个栏中的行值。
自定义比较的结果用来设定CustomColumnSortEventArgs.Result 的参数,如下所示:
我们把e.handled参数的值设为真,从而忽略掉默认的比较机制。
[C#]
protected void gridCustomers_CustomColumnSort(object sender, CustomColumnSortEventArgs e) {
if (e.Column != null & e.Column.FieldName == "City") {
object country1 = e.GetRow1Value("Country");
object country2 = e.GetRow2Value("Country");
int res = Comparer.Default.Compare(country1, country2);
if (res == 0) {
object city1 = e.Value1;
object city2 = e.Value2;
res = Comparer.Default.Compare(city1, city2);
}
e.Result = res;
e.Handled = true;
}
}
2.在另一个域内对ASPxGridView排序:按城市将ASPxGridView分组,但是通过分组汇总排序信息类按国家对其排序。
根据ASPxGroupSummarySortInfo对象提供的信息,基于此信息得到的汇总值来将组中的行排序。这些对象引入的属性代表了排序次序,用来计算汇总值的汇总项,等等。这些属性是只读的,并且由构造函数来初始化。
通过汇总值来排序组中的行,创建一个ASPxGroupSummarySortInfo对象,使用 GroupSummarySortInfoCollection.Add 方法把它添加到ASPxGridView的分组汇总排序信息集合里。把ASPxGroupSummarySortInfo对象添加到这个集合以后,组中的 行就会根据它们的汇总值自动的排序。
[C#]
gridCustomers.GroupSummarySortInfo.Clear();
ASPxGroupSummarySortInfo sortInfo = new ASPxGroupSummarySortInfo();
sortInfo.SortOrder = ColumnSortOrder.Ascending;
sortInfo.SummaryItem = gridCustomers.GroupSummary["Country", SummaryItemType.Min];
sortInfo.GroupColumn = "City";
3.通过自定义汇总类型对ASPxGridView排序:按城市将ASPxGridView分组,但是通过分组汇总排序信息类和自定义汇总计算事件按国家对其排序。
这种方法与前一种方法的不同点仅仅在于排序机制使用了一个自定义的汇总值。汇总自定义计算法则应用到自定义汇总计算事件句柄中。自定义汇总计算事件会触发 汇总计算中涉及到的每一行。当计算总的汇总值的时候,该事件将会被每一个数据行触发。在当前这个例子里,为了简单起见,自定义的总的汇总值等于子汇总值。
请参考ASPxGridView.CustomSummaryCalculate 事件和自定义汇总函数,这有助于学习更多关于自定义汇总计算过程的知识。
[C#]
gridCustomers.GroupSummarySortInfo.Clear();
ASPxGroupSummarySortInfo sortInfo = new ASPxGroupSummarySortInfo();
sortInfo.SortOrder = ColumnSortOrder.Ascending;
sortInfo.SummaryItem = gridCustomers.GroupSummary["Country", SummaryItemType.Custom];
sortInfo.GroupColumn = "City";
gridCustomers.GroupSummarySortInfo.AddRange(sortInfo);
[C#]
protected void gridCustomers_CustomSummaryCalculate(object sender, CustomSummaryEventArgs e) {
ASPxSummaryItem item = e.Item as ASPxSummaryItem;
if (item.FieldName == "Country") {
if (e.SummaryProcess == CustomSummaryProcess.Finalize)
e.TotalValue = e.FieldValue.ToString();
}
}
4.通过它们的名字对值进行排序:使用GridViewDataComboBoxColumn文本完成分组。
想通过文本而不是值来对GridViewDataComboBoxColumn进行排序的话,你应该将ASPxGridViewBehaviorSettings.SortMode 属性值设为‘显示文本’。
[ASPx]
<SettingsBehavior SortMode="DisplayText" />
同样,这种方法演示了如何为已分组的栏显示一个自定义文本。你应该使用GroupRowContent模板来完成这个任务。
[ASPx]
<Templates> <GroupRowContent> <%# "Category: " + Container.GroupText%> </GroupRowContent> </Templates>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自:DevExpress中文网面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
行业领先的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress ASP.NET Controls多款重量级ASP.NET用户界面组件套包,让您快速开发出完美、强大的应用程序!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢