easyui combobox 在datagrid中动态加载数据
场景: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中动态加载数据的更多相关文章
- EasyUI的treegrid组件动态加载数据问题的解决办法
http://www.jquerycn.cn/a_3455 —————————————————————————————————————————————————————————————————————— ...
- 某APK中使用了动态注册BroadcastReceiver,Launcher中动态加载此APK出现java.lang.SecurityException异常的解决方法
在某APK中,通过如下方法动态注册了一个BroadcastReceiver,代码参考如下: @Override protected void onAttachedToWindow() { super. ...
- 在ASP.NET中动态加载内容(用户控件和模板)
在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...
- 在MVC应用程序中动态加载PartialView
原文:在MVC应用程序中动态加载PartialView 有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载.为了演示与做好这个 ...
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格动态加载
jQuery EasyUI 树形菜单 - 树形网格动态加载 动态加载树形网格有助于从服务器上加载部分的行数据,避免加载大型数据的长时间等待.本教程将向您展示如何创建带有动态加载特性的树形网格(Tree ...
- 在VC中动态加载ODBC的方法
在使用VC.VB.Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置ODBC数据源.对于一般用户而言,配置ODBC数据源可能是一件比较困难的工作.而且,在实际应用中,用户往往 ...
- WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...
- vue中动态加载img
想实现动态加载图片,当点击“首页”时,图片变色 代码如下: <mt-tabbar v-model="selected" fixed class="border-1p ...
- AppCan学习笔记----关闭页面listview动态加载数据
AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...
随机推荐
- (二 -3-1) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列 esp8266程序
设备1 上电自动注册自己是个1个开关 HASS网页和手机APP控制 外部开关上升沿中断控制 天猫精灵语音控制 一键配网 记录以往WIFI信息 设备2 上电后,自动注册自己有三个开关控制 HASS网页和 ...
- Flask中无法在其他函数中查询Sqlachemy的解决办法
报错信息部分截取: File "D:\python 3.5\lib\site-packages\flask_sqlalchemy\__init__.py", line 912, i ...
- 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 本章介绍的nn模块是构建与autogr ...
- mysql从5.5直接升级到5.7后,执行mysql_upgrade速度很慢且执行结束后数据目录大小增加一倍及 mysqlpump备份出现1577错误
mysql官网不支持夸大版本升级,比如跳过5.6直接升级到5.7,但由于一些客观原因,项目需要从5.5直接升级到5.7,以下是具体操作 1.备份之前mysql,(数据量少,可直接拷贝安装目录及data ...
- AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)
在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类 ...
- day94
基于CoentOS 7.4系统的Liunx操作 1.常用软件安装 yum install -y bash-completion vim lrzsz wget expect net-tools nc n ...
- odoo10学习笔记
odoo的API: Odoo新API的介绍与应用: odoo新api的实现是借助于python装饰器.新API的装饰器主要有以下几种: model,multi,one,constrains,depen ...
- Ionic1 环境破坏后程序重新恢复过程
ionic platform remove android ionic platform add android cordova plugin add cordova-plugin-network-i ...
- django url之path默认参数
url path指向视图创建和更新数据 实例: from django.urls import path from . import views urlpatterns = [ path('blog/ ...
- C# 实现实时网速
前言 最近参加了一个项目,所以写博客的时间就少了,项目中有一个功能就是在窗体上显示实时网速,用了半天的时间写了出来,想想今天时间蛮充足,就把它分享到博客上吧. 项目展示 项目核心代码: private ...