[Ext JS6] Grid不同列的关联编辑

效果演示

Grid中有两列,Require列的值是“Y”时,Value列是必填,效果如下图:
在这里插入图片描述

实现思路:

Require和Value都是 widgetcolumn类型的列, 每个Cell中都是一个Combobox,以Require列为例,列定义如下:

{
				text : 'Require?',
				dataIndex : 'require',
				xtype : 'widgetcolumn',
				widget : {
					xtype : 'combobox',
					store : [ 'Y', 'N' ],
					bind : '{record.require}'
				}
			}

如果要实现选择某一行Require列的下拉单中的值,找到该行Value列中的Combobox并设置必填,就需要在Require的Combobox的change事件的时候能找到Value列的Combobox。
通过widget中的combobox的change事件可以获取widgetcolumn(getWidgetColumn())和widgetrecord(getWidgetRecord()),但是很难获取Value列的Combobox。
所以, 只能在点击最上方的Save按钮时统一检查。实现逻辑如下:

  1. 查找所有的Combobox
  2. 通过getWidgetColumn()和getWidgetRecord()获取列的dataIndex和行的数据 id.
  3. 判断同一个Record Id的Require和Value的Cell的值,并通过markInvalid()方法设置必填效果/

完整代码示例

https://github.com/osxm/extjs6-app/blob/master/test/gridValid.html

发布了591 篇原创文章 · 获赞 486 · 访问量 463万+

猜你喜欢

转载自blog.csdn.net/oscar999/article/details/100895827
js6
今日推荐