如何使用FormPanel的SetValues方法加载EntityFramework实体类数据到FormPanel上
2011-05-04 11:53
597 查看
前面提到,由于Coolite中使用的JSON转换方法在转换EF实体时出错,导致不能直接使用FormPanelBase的SetValues(object o)方法,我查阅了一下SetValues的源码,通过扩展方法的方式为FormPanel附加了一个SetEntityValues方法,这个SetEntityValues方法使用前文中的自定义转换JSON方法,详情见:http://blog.csdn.net/llxchen/archive/2011/05/04/6393547.aspx
这样使用EF时,可以使用FormPanel的扩展方法SetEntityValues方法来达到原SetValues方法一样的效果。
扩展SetEntityValues方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ext.Net; using System.Data.Objects.DataClasses; using Utilities; namespace WebUtility.ExtNet { public static class ExtensionMethods { /// <summary> /// 将EntityObj对象序列化后的值设置到FormPanel上 /// </summary> /// <param name="form"></param> /// <param name="obj"></param> public static void SetEntityValues(this FormPanelBase form, EntityObject obj) { ControlExtensionMethods.SetFormPanelValues(form, obj); } } public class ControlExtensionMethods { /// <summary> /// 设置EntityObject对象值到FormPanel /// </summary> /// <param name="form"></param> /// <param name="obj"></param> public static void SetFormPanelValues(FormPanelBase form, EntityObject obj) { string template = "{0}.getForm().setValues({1});"; string sb = obj.ToEntitiesJson(); string script = string.Format(template, form.ClientID, sb); form.AddScript(script); } } }
如何使用
var contract = ((ProjectContractBLL)BusinessManager).GetSingleProjectContract(Convert.ToInt32(ContractId)); //ProjectContractForm是Ext.net的FormPanel控件 ProjectContractForm.SetEntityValues(contract);
这样使用EF时,可以使用FormPanel的扩展方法SetEntityValues方法来达到原SetValues方法一样的效果。
相关文章推荐
- ExtJS的FormPanel中的组件使用load加载远程的JSON数据的方法
- 【jQuery】使用ajax()方法加载服务器数据
- 使用TcpListener的AcceptSocket()方法和AcceptTcpClient()方法接受远端数据时,程序总是好像死机一样!请问如何解决?
- 如何在MyEclipse中使用MyBatis将MySQL数据表生成相应的实体类和映射文件
- 使用laravel开发网站时,如何实现前端导航栏共享数据二种简单的方法
- 使用getJSON()方法异步加载JSON格式数据
- 如何使用沃顿研究数据中心(WRDS,CRSP)查询美股历史交易数据(R语言的调用方法以及代码示例)
- 如何使用DataBinder.Eval()方法进行数据绑定
- 客户端 使用XML DOM加载json数据的方法
- 在.NET2.0中如何更简单的使用委托将方法加载到事件中去
- 在使用bootstrapTable获取数据时,如何获悉table数据是否加载成功?
- ListView动态加载数据分页(使用Handler+线程和AsyncTask两种方法)
- 客户端 使用XML DOM加载json数据的方法
- 如何动态加载js文件,$.getScript()方法的使用
- oracle下的sqlldr命令使用方法(sqlldr工具的使用(批量将文本文件数据加载到数据表))
- jqGrid如何设置jqGrid第一次初始化时不加载任何数据?实现方法!
- 数据绑定技术—如何使用DataBinder.Eval()方法进行数据绑定
- [SQL]如何使用MERGE方法有效地插入或更新数据
- 如何使用Linq或EF来对数据去重——Distinct方法详解
- 难点总结:Jquery动态加载数据库中的数据(解答人:郭哲 方式:讲述jquery原理及一些函数的使用方法,学会看帮助文档)