easyui datagrid 编辑模式很实用,但在使用combobox 时,如何获取数据却成了一个大问题,如果直接为data属性指定数据,则必须保证在执行datagrid 初始化时,确保data的数据已经存在。而如果直接使用url,则每次combobox 会重复去指定URL获取数据,造成多次请求,资源浪费。
更重要的是,以上两种方法都无法动态改变combobox 的值,比如,我想让第一个combobox的下拉项是1,第二个是1,2,第三个是1,2,3……
有的同学也许会想到,我将某个数组赋给data,后期直接对该数组进行增删改,比如data:myArr!在需要的地方进行myArr.push(1)之类!
又或者:url:'data.json?id='+id,在需要的地方设置id=8等等!
对于这种善于思考的精神,我是很欣赏的,然而并没有什么卵用.
正确的姿式是使用loadFilter(载入过滤器),因为每次载入combobox 时,都会执行loadFilter,所以我们只需要为data指定一个空数据,然后在loadFilter里面做判断就行了,比如:data:[],loadFilter:myLoadFilter!
function myLoadFilter(data){ if(myData.length===0){ myData.push("test")//也可以通过AJAX取值,记得要将模式改成同步 } return myData }