FineUI 官方论坛

标题: 建议表格控件增强数据验证功能 [打印本页]

作者: hcp    时间: 2016-2-14 09:33
标题: 建议表格控件增强数据验证功能
表格的数据验证功能是否能够增强一下,现在检查一下字段值为空都要写这么一大段代码,实在是瘦不了啊:
  1. function isValid() {
  2.             var grid1 = F('<%= Grid1.ClientID %>');
  3.             var valid = true, modifiedData = grid1.getModifiedData();

  4.             $.each(modifiedData, function (index, rowData) {

  5.                 // rowData.id: 行ID
  6.                 // rowData.status: 行状态(newadded, modified, deleted)
  7.                 // rowData.values: 行中修改单元格对象,比如 { "Name": "刘国2", "Gender": 0, "EntranceYear": 2003 }
  8.                 if (rowData.status === 'deleted') {
  9.                     return true; // continue
  10.                 }

  11.                 var name = rowData.values['Name'];
  12.                 // 更改了姓名列,并且为空字符串
  13.                 if (typeof (name) != 'undefined' && $.trim(name) == '') {
  14.                     F.alert({
  15.                         message: '姓名不能为空!',
  16.                         ok: function () {
  17.                             grid1.startEdit(rowData.id, 'Name');
  18.                         }
  19.                     });

  20.                     valid = false;

  21.                     return false; // break
  22.                 }
  23.             });


  24.             return valid;
  25.         }
复制代码





作者: sanshi    时间: 2016-2-14 11:38
这个示例:http://fineui.com/demo_pro/#/demo_pro/grid/grid_editor_cell_client_validate.aspx

下面有提示:
注:保存数据前,验证“姓名”不能为空(现有数据可以简单通过 Required="true" 属性来控制,新增数据默认为空的话需要这个客户端验证)。


也就是说,90%的情况下只需要给Editor设置 Required就行了,这里只是显示一种特殊情况

作者: sanshi    时间: 2016-2-14 11:38
这个示例:http://fineui.com/demo_pro/#/demo_pro/grid/grid_editor_cell_client_validate.aspx

下面有提示:
注:保存数据前,验证“姓名”不能为空(现有数据可以简单通过 Required="true" 属性来控制,新增数据默认为空的话需要这个客户端验证)。


也就是说,90%的情况下只需要给Editor设置 Required就行了,这里只是显示一种特殊情况

作者: hcp    时间: 2016-2-22 08:38
可惜,我们90%的需求都是要新增数据的
作者: sanshi    时间: 2016-2-22 10:05
hcp 发表于 2016-2-22 08:38
可惜,我们90%的需求都是要新增数据的

你看下那个例子,“90%的需求都是要新增数据的”,你只要新增数据不为空,然后给Editor设置Required=true,就行了。无需写JS代码




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4