MES开发与应用 课件 3.4.3 控制器控制器实现介绍-3.4.7 平台编辑器使用配置;3.4.4-3.4.5 工业管理软件开发基础-平台通配置-实体和界面配置Api_第1页
MES开发与应用 课件 3.4.3 控制器控制器实现介绍-3.4.7 平台编辑器使用配置;3.4.4-3.4.5 工业管理软件开发基础-平台通配置-实体和界面配置Api_第2页
MES开发与应用 课件 3.4.3 控制器控制器实现介绍-3.4.7 平台编辑器使用配置;3.4.4-3.4.5 工业管理软件开发基础-平台通配置-实体和界面配置Api_第3页
MES开发与应用 课件 3.4.3 控制器控制器实现介绍-3.4.7 平台编辑器使用配置;3.4.4-3.4.5 工业管理软件开发基础-平台通配置-实体和界面配置Api_第4页
MES开发与应用 课件 3.4.3 控制器控制器实现介绍-3.4.7 平台编辑器使用配置;3.4.4-3.4.5 工业管理软件开发基础-平台通配置-实体和界面配置Api_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.4平台通用配置深圳市信息职业技术学院——控制器与界面分组介绍目

录控制器实现介绍01框架分组介绍及自定义分组的实现方式02自定义分组的实现示例03自定义分组的注意事项04知识回顾提交事件的使用场景介绍;提交前事件的开发实现步骤;提交后事件的开发实现步骤;提交事件的经验总结;学习目标通过本节学习可以:掌握控制器的使用;掌握自定义分组的开发实现;掌握自定义分组可能引发的异常并能对其进行修复;了解框架分组的实现逻辑。01控制器实现介绍控制器类介绍控制器类介绍控制器:主要用于处理业务的后端数据库操作的逻辑实现,通常一个实体对应一个控制器,如实体名为Item,则控制器的名称为ItemController,对Item进行增删改查方法的实现在ItemController中进行实现。控制器命名规范:XXXController,即以Controller结尾。控制器类实现:

控制器类:必须建在服务端工程中

访问修饰符:public

继承:DomainController

方法:非私有方法必须是虚方法virtual,且功能逻辑相似的方法尽量放到一起,方法的编写与C#基础的方法编写规范一致。控制器类方法的调用:RT.Service.Resolve<控制器类名>().方法名(方法参数);思考题本地代码启用代理调试,客户端调用控制器的方法执行不了报错的原因?调用的控制器方法未标记为virtual。02框架分组介绍及自定义分组的实现方式框架分组介绍框架ViewConfig的默认分组包括:ListView、DetailsView、SelectionView、QueryView、ImportView。框架默认的分组原理:界面首先进入到ConfigView方法中,在该方法中通过对ViewGroup进行分组判断,如果分组ViewGroup为ListView则进入到ConfigListView方法中,进行列表界面呈现的配置;如果分组ViewGroup为DetailsView则进入到ConfigDetailsView方法中,进行添加修改命令界面呈现配置;如果分组ViewGroup为SelectionView则进入到ConfigSelectionView方法中,进行下拉选择列表的界面配置;如果分组ViewGroup为QueryView则进入到ConfigQueryView方法中,进行查询条件的界面配置;如果分组ViewGroup为ImportView则进入到ConfigImportView方法中,进行下载Excel模板的列头配置。框架分组介绍自定义分组的实现方式在很多场景下,使用框架默认的列表和表单分组方法是无法满足项目需求的,比如框架从菜单进入页面默认是列表界面,如果想点击菜单就打开为表单;又比如我们希望在表单操作时,新增和修改的操作界面不一样等等之类的需求,框架提供的默认分组是无法满足这种个性化的需求,这个时候就需要引入自定义分组来解决这种需求。从前面的框架默认分组原理能够看出,要使用自定义分组其实就是更改ViewGroup的值,不进入到框架的视图配置方法中,自己定义视图配置方法去实现项目需求。框架自定义分组的实现方式包括三种:主界面自定义分组的实现、子列表或者子表单自定义分组的实现、命令自定义分组的实现。自定义分组的实现方式思考题ConfigDetailsView方法默认什么情况下会执行进来?设置编辑模式为表单编辑,点击添加或者修改按钮会执行进来。03自定义分组的实现示例思考题点击菜单,进入菜单主界面,展示为表单形式,应该如何实现?主界面自定义分组的使用

功能描述:在读者分类中点击菜单进入到界面功能,不进入配置列表视图,而是进入到我们自定义的视图配置方法中。实现步骤:1、在读者分类中定义一个分组的常量(这里不直接用字符串是字符串出了问题难定位问题)主界面自定义分组的使用主界面自定义分组的使用

2、在配置菜单中使用分组,分组名为上面定义的常量名。主界面自定义分组的使用主界面自定义分组的使用

3、在读者分类中自定义一个视图配置方法。主界面自定义分组的使用主界面自定义分组的使用

4、在读者分类的配置视图ConfigView方法中添加分组的判断,分组为我们自定义的分组名时,调用步骤3的方法。主界面自定义分组的使用主界面自定义分组的使用

5、效果。主界面自定义分组的使用思考题主从结构,主表为表单编辑,从表为行内编辑,主界面从表的展示与主表添加修改按钮从表的展示不一致,如何实现?子列表自定义分组的使用步骤

功能描述:图书分类添加修改命令中图书小类使用自定义分组实现。需求描述子列表自定义分组的使用步骤

1、在读书小类视图配置中定义一个分组常量。子列表自定义分组的使用子列表自定义分组的使用步骤

2、在图书大类的明细视图ConfigDetailsView的图书小类的子列表属性中使用分组。子列表自定义分组的使用子列表自定义分组的使用步骤

3、在图书小类中添加自定义视图配置方法。子列表自定义分组的使用子列表自定义分组的使用步骤

4、在图书小类的配置视图ConfigView方法中添加分组的判断,分组为我们自定义的分组名,调用步骤3的方法。子列表自定义分组的使用子列表自定义分组的使用步骤

5、效果。子列表自定义分组的使用说明:附加子列表和附加子表单的自定义分组的实现步骤与子列表自定义分组实现步骤一致。思考题表单编辑模式,添加和修改按钮的界面配置不一致,应该如何实现?命令自定义分组的使用步骤

命令的自定义分组主要是指表单编辑模式下的自定义分组,列表编辑模式(行内编辑模式)的操作命令都是在表格内操作,没有分组的设置。功能描述:这里以图书分类的添加命令为例,点击添加命令进入到自定义分组视图配置的实现,如下图描述。业务需求命令自定义分组的使用步骤

1、在读书大类中添加自定义视图配置方法。业务需求命令自定义分组的使用步骤

2、在读书大类的ConfigView方法中调用自定义视图配置方法。业务需求命令自定义分组的使用步骤

3、重写添加命令(js文件需要嵌入到资源),更改框架默认的ViewGroup(与步骤2的分组名一致),这里只需要掌握命令分组的更改,添加命令的具体使用在添加命令中再详细介绍。业务需求命令自定义分组的使用步骤

4、在读书大类的ConfigListView方法中替换添加命令。业务需求命令自定义分组的使用步骤

5、效果。业务需求04自定义分组的注意事项自定义分组注意事项1、自定义分组的分组名尽量不要使用字符串,容易出错;2、自定义分组一定要记得进行额外授权,否则普通权限会存在问题;

通过View.DeclareExtendViewGroup(分组名)进行授权。3、自定义视图配置方法使用默认命令组合不生效(即View.UseDefaultCommands()失效),必须通过View.UseCommands(WebCommandNames.Add)一个个将命令加上;4、自定义视图配置方法的属性后面必须加show(),否则属性显示不出来,如下必须将show配置上

View.Property(p=>p.Code).Show();5、自定义视图配置方法要使用using(View.OrderProperties())对列显示顺序进行排序,否则列显示顺序会乱。注意事项思考题自定义分组普通账号界面权限异常的排查思路?1、检查分配权限的用户是否为普通账号对应的库存组织的管理员;2、有没有在菜单中进行“更新功能模块”或“更新选定模块”;3、自定义的分组名有没有使用View.DeclareExtendViewGroup()加到额外的视图中。练习1、自定义分组的列要按顺序显示,需要在自定义视图方法中使用()指定列显示顺序。2、自定义分组方法中,列要能正常显示,需要在属性列配置后面加()。3、自定义分组普通账号权限正常,需要在界面配置ConfigView方法中配置()。4、自定义分组方法中可以使用View.UseDefaultCommands()配置界面命令。()View.OrderProperties()View.DeclareExtendViewGroup(自定义分组名);错Show()本章小结本章主要讲解了工业管理软件的控制器与界面分组介绍,包括:控制器的使用;框架分组的实现逻辑;自定义分组的实现方式;自定义分组的开发实现示例;自定义分组开发过程中的注意事项。控制器和分组的使用在工业管理软件开发中比较重要,使用频率较高,学员要掌握控制器方法的编写和调用,以及自定义分组的开发实现,并了解什么情况下选择使用自定义分组实现业务需求。THANKYOU深圳市信息职业技术学院3.4平台通用配置深圳市信息职业技术学院——实体和界面配置Api实体属性实体属性特性实体特性实体配置实体介绍视图介绍视图配置视图属性配置知识扩展知识回顾控制器实现介绍;框架分组介绍;自定义分组的实现方式,三种入口的实现方式;自定义分组三种实现方式的实现示例;自定义分组的注意事项;学习目标通过本节学习可以:掌握实体包含的特性、实体属性、属性标签;掌握实体的配置;掌握界面的方法及使用;掌握界面方法的属性配置、命令配置、界面呈现配置;了解实体的组成;了解界面的组成。01实体介绍思考题平台框架定义的实体通用属性包括哪些?实体介绍实体介绍1、实体通常会映射数据库,所有新建实体类要建在服务端工程;2、实体类必须包含在对应文件夹下;文件夹以“实体名+S”进行命名;3、实体一定要包含命名空间,且命名空间要规范,一般为“对应工程名+文件夹名”;4、实体一般定义为部分类,直接或间接继承DataEntity;5、实体类继承的父实体尽量不要包含子列表属性,如果包含,子实体又没有用new关键字覆盖父实体属性,BS生成界面会报错;6、实体类中尽量只包含对应的属性,尽量不要去写与业务逻辑相关的代码;实体介绍实体介绍7、实体属性包含一般属性、引用属性、列表属性、只读属性和视图属性;默认情况下一般属性和引用属性会映射生成数据库表字段,其他的属性不会。8、创建实体的属性,我们只建业务相关的属性,业务属性不要和框架属性命名冲突,框架定义的属性包括:Id,CreateBy,CreateDate,InvOrgId,IsPhantom,SyncId,UpdateBy,UpdateDate;框架属性对应数据库表字段如下:9、实体类中的实体配置以“类名+Config”进行命名;02实体属性一般属性实体属性:实体属性是通过托管属性进行注册的,托管属性通过P<T>.Register()方法进行注册,T为所注册的托管属性的实体所有者(Owner)。一般属性:普通类型的属性#region

分类编码Code///

<summary>///分类编码///

</summary>[Label("分类编码")]public

static

readonlyProperty<string>CodeProperty=P<BigBookCat>.Register(e=>e.Code);///

<summary>///分类编码///

</summary>public

stringCode{get{returnGetProperty(CodeProperty);}set{SetProperty(CodeProperty,value);}}#endregion一般属性一般属性支持的属性类型:stringbool、bool?int、int?,long,long?double、double?DateTime、DateTime?枚举类型、Nullable<枚举类型>Byte[]引用属性引用属性:引用类型的属性,包括引用ID和引用实体两个属性,必须在同一实体中成对定义,属性类型为double。引用属性需指定引用类型ReferenceType,一般引用为Normal,子实体引用父实体为Parent。#region

读者管理与读者分类的关系ReaderCat[Label("类别号")]public

static

readonlyIRefIdPropertyReaderCatIdProperty=P<ReaderMan>.RegisterRefId(e=>e.ReaderCatId,ReferenceType.Normal);///

<summary>///读者管理与读者分类的关系Id///

</summary>public

doubleReaderCatId{get{return(double)GetRefId(ReaderCatIdProperty);}set{SetRefId(ReaderCatIdProperty,value);}}///

<summary>///读者管理与读者分类的关系///

</summary>public

static

readonlyRefEntityProperty<ReaderCat>ReaderCatProperty=P<ReaderMan>.RegisterRef(e=>e.ReaderCat,ReaderCatIdProperty);///

<summary>///读者管理与读者分类的关系///

</summary>publicReaderCatReaderCat{get{returnGetRefEntity(ReaderCatProperty);}set{SetRefEntity(ReaderCatProperty,value);}}#endregion引用属性引用Id引用实体引用类型,一般外键为Normal列表属性列表属性:子列表的属性,一对多关系中,父实体包含子实体的列表。#region

图书大类与小类的关系SmallBookCatList///

<summary>///图书大类与小类的关系///

</summary>public

static

readonlyListProperty<EntityList<SmallBookCat>>SmallBookCatListProperty=P<BigBookCat>.RegisterList(e=>e.SmallBookCatList);///

<summary>///图书大类与小类的关系///

</summary>publicEntityList<SmallBookCat>SmallBookCatList{get{return

this.GetLazyList(SmallBookCatListProperty);}}#endregion列表属性只读属性只读属性:只读属性用于表示实体中的一个只读的数据。只读属性主要为界面展现层设计。#region

全名FullName///

<summary>///全名///

</summary>[Label("全名")]public

static

readonlyProperty<string>FullNameProperty=P<BigBookCat>.RegisterReadOnly(e=>e.FullName,e=>e.GetFullName(),CodeProperty,NameProperty);///

<summary>///全名///

</summary>public

stringFullName{ get{return

this.GetProperty(FullNameProperty);}}private

stringGetFullName(){ return

this.Code+"("+this.Name+")";}#endregion只读属性视图属性视图属性:视图属性是通过引用属性懒加载的数据,主要为界面展现层设计。如果实体和继承的父实体中没有引用属性,则不能使用视图属性。#region

类别名称CatName

///

<summary>

///类别名称

///

</summary>[Label("类别名称")]

public

static

readonlyProperty<string>CatNameProperty=P<ReaderMan>.RegisterView(e=>e.CatName,p=>p.ReaderCat.CatName);

///

<summary>

///类别名称

///

</summary>

public

stringCatName

{

get{return

this.GetProperty(CatNameProperty);}

}

#endregion视图属性通过引用实体.属性名加载出来视图属性的内容思考题实体的一般属性支持哪些类型?03实体属性特性实体属性特性属性名称标签(Label):用于在实体属性上声明属性的显示名称。必填标签(Required):声明实体属性不能为空,字符串类型属性会标记该特性。非重复标签(NotDuplicate):声明实体属性不能重复。最大长度标签(MaxLength):声明实体属性的最大长度,字符串类型的属性会标记该特性。最小长度标签(MinLength):声明实体属性的最小长度,字符串类型的属性会标记该特性。最大值标签(MaxValue):声明实体属性的最大值,数值类型的属性会标记该特性。最小值标签(MinValue):声明实体属性的最小值,数值类型的属性会标记该特性。属性默认值(DefaultValue):属性默认值设置,作用域为当前实体。实体属性特性04实体特性实体特性实体类型特性(RootEntity,ChildEntity,QueryEntity):用于在实体上声明实体的类型。实体序列化特性(Serializable):用于在实体上声明实体可序列化。实体名称特性(Label):用于在实体上声明实体的显示名称。实体成员显示特性(DisplayMember):用于在实体上声明实体被引用时显示哪个属性的值,注意显示的成员必须是普通属性,且必须是数据库表中存在字段对应的属性。实体通用查询特性(CriteriaQuery):用于在实体上声明实体的查询使用通过查询条件,CriteriaQuery后面不关联类则使用的是框架标准查询,关联类即CriteriaQuery(typeof(类)),则查询自己实现。实体特性实体特性实体查询特性(ConditionQueryType):用于在实体上声明实体使用的查询实体类型(注意:实体查询标签与实体通用查询标签只能标记其中的一个)。下拉列表查询条件特性(QueryMembers):用于在实体上声明实体被引用时下拉列表的查询条件配置。实体配置项特性(EntityWithConfig):用于在实体上声明实体通用配置值。单据打印特性(BillPrintable):用于在实体上声明界面单据打印命令的配置。实体特性05实体配置思考题实体元数据配置支持哪些配置?实体配置实体配置包括“实体规则配置”和“实体元数据配置”。实体规则:重写AddValidations方法,这里配置的是标准规则,标准规则不能在界面进行启用和禁用操作,代码编写即生效,建议在项目上如果没有特殊的要求可以使用该规则进行实现(可以减少实体元数据的更新操作)。可以实现的标准规则验证:1、非空验证;2、长度验证;3、最大最小值验证;4、非重复验证(支持单个和多个属性的非重复验证);5、正则表达式的验证;6、实体验证(HandlerRule),该验证中可以查数据库进行验证操作。实体配置实体元数据配置实体元数据的配置,可以映射表、映射视图、映射属性和实体插件。映射数据库表:Meta.MapTable(“RES_EMP_GROUP”);映射视图1)直接读取数据库的视图:Meta.MapView(“V_RES_EMP_GROUP”);2)通过sql查询出来的视图:Meta.MapView(“(SELECT*FROMRES_EMP_GROUP)”);3)通过DB.Query查询出来的视图:

Func<IQuery>view=()=>DB.Query<Enterprise>().Where(p=>p.Level.IsResource==true&&p.InvOrgId==RT.InvOrgId).ToQuery();

Meta.MapView(view);//影射一条IQuery查询的视图,注意查询中不能出现当前实体,否则会出现死循环。映射表和视图实体元数据配置映射实体中的所有属性为数据库表字段:Meta.MapAllProperties();映射指定的属性及属性长度:

Meta.Property(Employee.CodeProperty).MapColumn().HasLength(50);Meta.Property(Employee.CodeProperty).MapColumn().DataTypeLength=“50";排除某些字段不映射数据库的设置:

Meta.MapAllPropertiesExcept(Employee.CodeProperty);指定某个字段不映射数据库:DontMapColumn;

Meta.Property(Employee.CodeProperty).DontMapColumn();建立唯一索引,使用HasIndex。

Meta.Property(Resource.KeyProperty).MapColumn().HasIndex(IndexTypeMeta.UniqueIndexed);建立组合索引:使用IndexGroupOnProperties设置。

Meta.IndexGroupOnProperties(Resource.CultureIdProperty,Resource.KeyProperty);忽略映射外键:IgnoreFK;

Meta.Property(SupplierShipBill.MasterBillIdProperty).ColumnMeta.IgnoreFK();映射属性实体元数据配置启用假删除:Meta.EnablePhantoms();禁用假删除:Meta.DisablePhantoms();启用库存组织:Meta.EnableInvOrg();

禁用库存组织:Meta.DisableInvOrg();启用实体排序:Meta.EnableSort();

禁用实体排序:Meta.DisableSort();启用树形插件:Meta.SupportTree();启用实体编辑日志记录插件:Meta.EnableEntityLog();启用数据同步插件:Meta.EnableDataSync();启用实体鉴别器:Meta.EnableDiscriminator("PersonAttachment");实体插件06视图介绍视图介绍视图:界面呈现的开发实现,包括界面布局,编辑器,按钮等相关界面操作。界面视图命名规范:实体类名+ViewConfig,继承:WebViewConfig<T>;T为对应的实体名称;界面视图只能建在客户端工程。视图配置的方法:1、配置视图:ConfigView,界面的入口,具体视图的列和命令操作配置不要在该方法中进行配置;2、列表视图配置:ConfigListView;3、表单视图配置:ConfigDetailsView,需要配置编辑模式为表单编辑(View.FormEdit())才会进入,需要注意的是一定要先使用编辑模式,再使用默认命令集,否则会出异常;4、查询视图配置:ConfigQueryView;查询命令中不要使用默认命令集,否则权限会多出一个view的权限配置;5、下拉视图配置:ConfigSelectionView,下拉视图中不用配置操作命令;6、导入视图配置:ConfigImportView(),导入命令中不用配置命令;7、自定义视图配置:使用默认命令集(View.UseDefaultCommands())不生效,要把自定义分组添加到额外的分组(DeclareExtendViewGroup)里面,配置具体的列要加Show。视图介绍07视图配置思考题列表视图配置可以做哪些配置?通用视图ConfigView配置授权可信的实体:View.AssignAuthorize(typeof(实体名))定义额外的视图,用于加载权限信息,生成授权界面:View.DeclareExtendViewGroup();判断分组信息,执行到具体的视图方法配置;设置编辑模式,View.InlineEdit();或者View.FormEdit();如果菜单配置中没有配置分组信息,编辑模式最好在ConfigListView中进行配置;ViewConfig配置列表视图ConfigListView配置表格设置不使用分页:View.WithoutPaging();使用编辑模式:View.InlineEdit();或者View.FormEdit();使用行为:View.AddBehavior("行为js的全名称空间");使用默认命令集:View.UseDefaultCommands();移除命令:View.RemoveCommands(WebCommandNames.Copy);使用命令:View.UseCommands(WebCommandNames.Save);替换命令:View.ReplaceCommands(WebCommandNames.Delete,typeof(DeleteGoodCommand).FullName);清除所有命令:View.ClearCommands();ConfigListView配置列表视图ConfigListView配置设置父子显示比例,默认1:1,设置其他的比例使用View.UseLayoutSize(0.4,0.6);设置子布局:View.UseChildrenAsHorizontal();View.UseChildrenGroupAsHorizontal();设置前端排序:View.UseClientOrder();设置属性视图元数据:View.Property,View.ChildrenProperty和附加子属性视图元数据;设置不允许编辑:View.DisableEditing();表格列分组的使用:using(View.DeclareBand(“test”));ConfigListView配置表单视图ConfigDetailsView配置使用行为:View.AddBehavior("行为js的全名称空间");设置显示列数:View.HasDetailColumnsCount(2);设置表单的宽度和高度:View.UseDetail(600,1000);设置界面不允许编辑:View.DisableEditing();使用默认命令集:View.UseDefaultCommands();移除命令:View.RemoveCommands(WebCommandNames.Copy);使用命令:View.UseCommands(WebCommandNames.Save);替换命令:View.ReplaceCommands(WebCommandNames.Delete, typeof(DeleteGoodsManageCommand).FullName);清除所有命令:View.ClearCommands();设置父子显示比例,默认1:1:View.UseLayoutSize(0.4,0.6);设置属性视图元数据:View.Property,View.ChildrenProperty和附加子属性视图元数据;ConfigDetailsView配置选择视图、导入视图、查询视图选择和导入视图选择视图和导入视图只需要配置列属性即可;选择视图的方法:ConfigSelectionView;导入视图的方法:ConfigImportView;查询视图查询视图的方法:ConfigQueryView;查询视图的按钮没有控制操作权限,这一块不需要设置操作命令,除非重写对应的命令;必须在实体中标记CriteriaQuery或者是CriteriaQueryProvider特性才会进入ConfigQueryView方法中;选择、导入和查询视图08视图属性配置思考题视图属性包括哪些配置?属性配置表格设置列宽:ShowInList(width:300);表单设置行和列:ShowInDetail(rowSpan:8,columnSpan:3);设置列显示位置:View.Property(p=>p.Describe).HasOrderNo(4);只读设置:View.Property(p=>p.Code).Readonly(p=>p.PropertyType!=ItemPropertyType.Catalog)联动设置:使用Cascade进行设置;属性配置属性配置表格冻结列设置:FixColumn();引用属性使用自定义数据源:View.Property(p=>p.SupplierItemId).UseDataSource()View.Property(p=>p.SupplierItemId).UseDataSource((entity,pagingInfo,keyword)=>{varproductTest=entityasProductTest;if(productTest!=null){varlist=RT.Service.Resolve<OrderTestController>().GetSupplierItem(productTest.SupplierTestId,keyword,pagingInfo);returnlist;}else return

newEntityList<SupplierItem>();});属性配置属性配置表单设置换行:BS表单设置换行需要在要设置换行的列的前一列设置对应的列宽和列所占的宽度;如下图希望工单另起一行,需要设置工单上面的一列占满整行和这一列显示的宽度;属性配置属性配置使用编辑器,具体查看编辑器的使用;默认值的设置:View.Property(p=>p.Code).DefaultValue(设置的值);String属性类型的默认值设置: View.Property(p=>p.Name).DefaultValue(“Test”);枚举默认值的设置: View.Property(p=>p.Name).DefaultValue((int)ItemType.Product)设置当前日期:View.Property(p=>p.Date).DefaultValue(System.DateTime.Today).UseDateEditor();设置当前时间:View.Property(p=>p.DateTime).DefaultValue(DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss")).UseDateTimeEditor();属性配置属性配置下拉列表默认值设置:

请求后台数据库赋值:

View.Property(p=>p.EmpId).DefaultValue(RT.Service.Resolve<EmployeeController>().GetLoginUserEmployee())GetLoginUserEmployee方法在服务端控制器实现,如下:public

virtual

SIE.Resources.Employee

GetLoginUserEmployee()

{

var

employee

=

RF.GetById<SIE.Resour

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论