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地图