2012-04-10 41 views
1

我有一个名为event_date的列。我想警告用户,如果他尝试提交信息而不填写event_date列并阻止进一步执行。下面是我如何定义我的专栏:ExtJS在提交之前检查单元格的值

header: 'Event_date', 
      width: 115, 
      dataIndex: 'event_time', 
      renderer: this._renderExactDate, 
      field: { 
       type: 'textfield' 
      } 

和我的渲染功能是:

_renderExactDate: function(date) { 
     if (date == '0000-00-00 00:00:00' || date == undefined) { 
      Ext.MessageBox.show({ 
      title: 'New event', 
      msg: 'You must set a date', 
      icon: Ext.MessageBox.ERROR, 
      buttons: Ext.Msg.OK 
     }); 
     } 
     else 
      { 
       return date; 
      } 
    } 

但OBV。渲染器不是这样做的方式,但我还没有找到办法做到这一点。

感谢

Leron

回答

1

如果这是使用ExtJS4那么你应该利用model field validations场的设置接受的格式。如果任何标准不符合法案,写一个自定义的标准。然后,您可以在任何尝试同步并相应标记警告之前检查模型是否有效。

你想挂钩的事件是这一个。然后,您可以在生成警告之前获取记录/模型并检查其“isValid”方法。

链接:Ext.grid.plugin.CellEditing validateedit事件

+0

是的,它的ExtJS4但我不知道是不是有办法听像模糊一些事件()当焦点不在这一领域的触发功能,应若检查提交是空的?有没有办法做到这一点? – Leron 2012-04-10 17:16:59

+0

我已经在解决方案中添加了所需活动的链接。 – 2012-04-10 22:57:53

+0

Thnaks的帮助。链接不工作,虽然:( – Leron 2012-04-11 05:33:32