更新,将FieldFormatorHandle的参数类型改为DataRow,这样就可以基于整行的数据进行格式化了。
2010-9-10 v1.24beta
- 修复insertNewRow()、updateRowData()方法处理ID包含“#”时的BUG,调整了若干需要进行Jquery转义的地方。
- 新增Js方法containsRowId ()用于检查指定ID的行是否存在。
- 新增格式化处理,现在可以通过指定列的格式化方法来处理展现数据了。
- 更新演示项目,增加根据状态字段不同来展现不同的数据和单元格颜色。
- 修复转换为WebApp可能导致的bug.
更新说明文档,请访问:JQuery FlexiGrid的asp.net完美解决方案:dotNetFlexGrid控件完整Api说明文档(更新至1.24 2010-9-10)
更新演示程序,请访问:快速指南中提供TestStockFormList.aspx,演示在表单中使用dotNetFlexGrid储存客户录入的数据并作为表单提交
列的展现模板:轻松在表格中显示文本框、按钮等任意东西
InitConfig初始化时针对列配置增加了一个itemTemplate属性,该属性提供了当前列的展现模板设定,您可以在该属性中提供几乎任何Html内容(当然,请保证不会破坏表格结构),使用简单的模板语法“[@字段名]”来展现您所希望的格式,比如说:
“<input id=’ [@Guid]’ type=’text’ value=’[@String1]’ />”
上述语法将在指定的列展现一个以该行的Guid字段的值给出的Id的文本框,该文本框将展示String1字段的值。
格式化列:在表格中根据上下文数据来控制单元格的内容、颜色等。
1.24版本中,我们为控件加入了格式化的处理机制,现在DataHandler的返回值中增加了一个名为FieldFormator的配置项,您可以在这里针对列进行具体的格式化处理,如下示例,为返回的数据增加了一个针对列名为ProductState的处理器,我们将不同的状态使用颜色区分,并显示不同的文本。
1: dotNetFlexGrid.FieldFormatorHandle proc=delegate(DataRow dr)2: {
3: switch (dr["ProductState"].ToString().ToLower())4: {
5: case "0":6: return "<span style='color:red'>禁用</span>";7: case "1":8: return "<span style='color:Blue'>下架</span>";9: case "2":10: return "<span style='color:Gray'>正常销售</span>";11: case "3":12: return "已售空";13: }
14: return "";15: };
dotNetFlexGrid支持的三种列类型:数据不一定要来源于数据库
截止到当前版本,控件支持三种不同来源的列类型:
l 普通列
最普通的一种列的形式,直接从DataHandler的返回值中获取并展示数据,不进行任何额外处理。
l 模板列
配置了展现模板的列,该列数据将根据模板中指定的格式生成数据,该列实际可以在数据源存在,也可以完全不存在,由运行时决定实际的展示内容。
l 格式化列
指定了格式化处理器的列,该列数据将调用格式化方法进行处理后返回,如果格式化列也存在模板配置,则将继续应用模板中的配置产生新的数据,跟模板列一样,该列实际可以在数据源存在,也可以完全不存在,由运行时决定实际的展示内容。