场景:datagrid 中用编辑框修改数据,有一个列使用的combobox  在可编辑的时候需要动态绑定数据,这个数据是在根据其他条件可变的

思路:在每次开启编辑框的时候动态绑定数据,

datagrid开启

onClickCell: onClickCell//点击触发

onAfterEdit:onAfterEdit//编辑完单元格之后触发的事件

     $.extend($.fn.datagrid.methods, {
editCell: function (jq, param) {
return jq.each(function () {
var opts = $(this).datagrid('options');
var fields = $(this).datagrid('getColumnFields', true).concat($(this).datagrid('getColumnFields'));
for (var i = 0; i < fields.length; i++) {
var col = $(this).datagrid('getColumnOption', fields[i]);
col.editor1 = col.editor;
if (fields[i] != param.field) {
col.editor = null;
}
}
$(this).datagrid('beginEdit', param.index);
for (var i = 0; i < fields.length; i++) {
var col = $(this).datagrid('getColumnOption', fields[i]);
col.editor = col.editor1;
}
});
}
}); var editIndex = undefined;
//判断是否编辑结束
function endEditing() {
if (editIndex == undefined) { return true }
if ($('#subDg').datagrid('validateRow', editIndex)) {
$('#subDg').datagrid('endEdit', editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}
   //点击单元格触发的事件
function onClickCell(index, field) {
if (endEditing()) {
$('#subDg').datagrid('selectRow', index)
.datagrid('editCell', { index: index, field: field });
editIndex = index;
}
var taskLevelsData =$("#taskLevels").val();
if(field=="taskLevel" && taskLevelsData){//下拉编辑列时触发
var editors = $('#subDg').datagrid('getEditors', index);//取当前的编辑器
var row = $('#subDg').datagrid('getRows')[index];
var smEditor = editors[0];
$(smEditor.target).combobox({
onLoadSuccess: function () {
},
onShowPanel: function(){ //下拉展开时动态修改options
//debugger
var data = [];
$.each(taskLevelsData.split(","),function(i,e){
var obj={};
obj.id=e;
obj.text=e;
data.push(obj);
}) $(smEditor.target).combobox("loadData", data);
//设置值
$(smEditor.target).combobox('setValue', row.taskLevel); //row的属性赋值
}
});
}
}
//编辑完单元格之后触发的事件
function onAfterEdit(index, row, changes) {
var d = {};
d.id= row.id;
         //编辑内容进行修改数据
if(row.hasOwnProperty('bidRequire')){
d.bidRequire=row.bidRequire;
}if(row.hasOwnProperty('meaRequire')){
d.meaRequire=row.meaRequire;
}if(row.hasOwnProperty('requireDate')){
d.requireDate=row.requireDate.split(' ')[0] ;
}if(row.hasOwnProperty('quaRequire')){
d.quaRequire=row.quaRequire;
}if(row.hasOwnProperty('taskLevel')){
d.taskLevel=row.taskLevel;
}
//console.log(d);
//console.log(changes);
if(JSON.stringify(changes) != "{}"){
//console.log("tijiao")
$.post('${pmsmanager}/pms/mtrl_plan/mtrl_plan_detail/update.do?sessionId=${(sessionId)!""}',d,function(data){
})
} }

easyui combobox 在datagrid中动态加载数据的更多相关文章

  1. EasyUI的treegrid组件动态加载数据问题的解决办法

    http://www.jquerycn.cn/a_3455 —————————————————————————————————————————————————————————————————————— ...

  2. 某APK中使用了动态注册BroadcastReceiver,Launcher中动态加载此APK出现java.lang.SecurityException异常的解决方法

    在某APK中,通过如下方法动态注册了一个BroadcastReceiver,代码参考如下: @Override protected void onAttachedToWindow() { super. ...

  3. 在ASP.NET中动态加载内容(用户控件和模板)

    在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...

  4. 在MVC应用程序中动态加载PartialView

    原文:在MVC应用程序中动态加载PartialView 有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载.为了演示与做好这个 ...

  5. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格动态加载

    jQuery EasyUI 树形菜单 - 树形网格动态加载 动态加载树形网格有助于从服务器上加载部分的行数据,避免加载大型数据的长时间等待.本教程将向您展示如何创建带有动态加载特性的树形网格(Tree ...

  6. 在VC中动态加载ODBC的方法

    在使用VC.VB.Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置ODBC数据源.对于一般用户而言,配置ODBC数据源可能是一件比较困难的工作.而且,在实际应用中,用户往往 ...

  7. WPF中动态加载XAML中的控件

    原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...

  8. vue中动态加载img

    想实现动态加载图片,当点击“首页”时,图片变色 代码如下: <mt-tabbar v-model="selected" fixed class="border-1p ...

  9. AppCan学习笔记----关闭页面listview动态加载数据

    AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...

随机推荐

  1. from __future__ import包的作用

    __future__是python2的概念,其实是为了使用python2时能够去调用一些在python3中实现的特性 1.absolute_import from __future__ import ...

  2. ogg BR – BOUNDED RECOVERY

    BR – BOUNDED RECOVERY 适用于 Extract 进程(仅适用于 Oracle数据库) 使用 BR 参数可以控制 GoldenGate 的 Bounded Recovery (BR) ...

  3. Linux如何查看端口状态

    netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的 ...

  4. binarySearch(int[] a,int fromIndex,int toIndex, int key)的用法

    package com.Summer_0420.cn; import java.util.Arrays; /** * @author Summer * binarySearch(int[] a,int ...

  5. 在Sublime中配置JsFormat

    JsFormat配置文件: { // exposed jsbeautifier options "indent_with_tabs": false, // 保留换行符 " ...

  6. UVA - 10931-Parity

    题意:1.输入一个数,将其转换为二进制.2.记录二进制中出现1的次数. 注意:转换二进制后直接输出,不能转换为十进制后输出 #include<iostream> #include<c ...

  7. Cgroups 与 Systemd

    Cgroups 是 linux 内核提供的一种机制,如果你还不了解 cgroups,请参考前文<Linux cgroups 简介>先了解 cgroups.当 Linux 的 init 系统 ...

  8. 一起学习造轮子(三):从零开始写一个React-Redux

    本文是一起学习造轮子系列的第三篇,本篇我们将从零开始写一个React-Redux,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Promises/A+,Re ...

  9. Ubuntu: 软件库(software repositories)

    Linux 生态下,几乎每个发行版都有自己的软件库(software repositories),Ubuntu 当然也不例外.Ubuntu 提供了四个不同的软件库,分别是 main.restricte ...

  10. Python-collections模块-57

    返回顶部 模块的导入和使用 模块的导入应该在程序开始的地方 更多相关内容 http://www.cnblogs.com/Eva-J/articles/7292109.html   常用模块 colle ...