BPM实例分享:玩转数据字典新技巧-字典库排序。LINQ 常见用法。

来童鞋问到字典库的排序问题,这里大概介绍一个初技巧。

 

数字典使用状况:请假流程里之请假类型,有病假、事假、调休等。
定义数据字典,并且在流程中使用SheetDropDownList或SheetRadioButtonList展现由用户来选择,如图:

以下数据源都要为data

图片 1 

1.落某列的匪又数据

多少字典

List<int> ids =  data.Select(t => t.ID).Distinct().ToList();

使用SheetDropDownList,并且安装该控件的特性MasterDataCategory为“请假类型”,其代码可能如下:

 

<SheetControls:SheetDropDownListID=”SheetDropDownList1″runat=”server”DataField=”请假类型”MasterDataCategory=”请假类型”></SheetControls:SheetDropDownList>
每当表单中形的意义如下:

2.对list进行in查询

图片 2 

List<int> ids = new List<int>() { 1,2,3};
List<Entity>  data = data.Where(tb =>
ids.Contains(tb.ID)).Select(tb => tb).ToList();

SheetDropDownList使用数量字典

选择指定列

表单设计器中使用

var data = data.Select(t=>new{ t.id,t.name});

图片 3 

变成为字典
var data = data.ToDictionary(key => key.ID, value => value.Name);

对于SheetDropDownList、SheetCheckBoxList、SheetRadioButtonList控件,可以一直绑定多少字典显示选项。

 

数量字典固然好,一不小心就建造多矣,字典库多矣用起来为是起硌麻烦。

3.排序

图片 4 

  OrderBy(s=>s.Name)  正序

脚教受大家一个简单实用的排序技能.
率先找到

  OrderByDescending(s=>s.Name)  倒序 

 

  OrderBy(s=>s.Type).ThenBy(s => s.Name)  联合排序

\Portal\Admin\MvcDesigner\MvcDesignerService.ashx

  OrderByDescending(s=>s.Type).ThenBy(s => s.Name)  联合排序

 

  OrderBy(s=>s.Type).ThenByDescending(s => s.Name)  联合排序
  OrderByDescending(s=>s.Type).ThenByDescending(s =>
s.Name)  联合排序

脚的斯函数

 

 

#region 获取数据字典

   

        public void GetMasterDataCategory(HttpContext context)

        {

            List<string> items = new List<string>();

            Dictionary<string, string> table =
OThinker.H3.WorkSheet.AppUtility.Engine.MetadataRepository.GetCategoryTable();

            foreach (string key in
table.OrderBy(s=>s.Value).Select(x=>x.Key))

            {

                items.Add(table[key]);

            }

            context.Response.Write(JSSerializer.Serialize(items));

        }

   

        #endregion

 

管原的 table.Keys 改成为

 

table.OrderBy(s=>s.Value).Select(x=>x.Key)

 

得无限制更改化喜欢的排序都可以。

相关文章

admin

网站地图xml地图