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){
                   })
               }

     }
时间: 2024-11-07 10:08:08

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

WPF DataGrid下滑动态加载数据

效果如图: 重点是判断滑动到DataGrid底端(VerticalOffset等于ScrollableHeight),则继续加载数据 private void DataGrid_ScrollChanged(object sender, ScrollChangedEventArgs e) { var scrollViewer = e.OriginalSource as ScrollViewer; if (e.VerticalOffset!=0 && e.VerticalOffset == s

界面存在多个easyUI Combobox控件时,加载数据失败,或加载不正确

问题原因:当一个界面上有多个easyui ComboBox控件,且在界面加载时同时请求数据.由于数据是异步加载,会导致下拉数据源加载失败,或加载不正确(串数据). 方案一:不用在一开始设定url(data加载路径),在点击控价下拉按钮时再加载数据源. <td>处理类型:</td> <td><input id="handleType" name="handleType" panelHeight="auto"

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

http://www.jquerycn.cn/a_3455 —————————————————————————————————————————————————————————————————————————————————————— 最近涉及到treegrid组件的查询,需要根据查询条件动态更新EasyUI的treegrid组件的动态加载查询结果 搜遍了treegrid源码和文档发现treegrid是扩展自datagrid和tree的,不过以往利用datagrid的reload方法加参数的 方式

Java中动态加载jar文件和class文件

概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用. Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 动态加载jar文件 // 系统类库路径 File libPath =

zTree 从数据库中动态加载树形菜单

这几天做动态菜单用到了这个插件,目前用的很广泛的一个开源框架,最新发布的QUI框架就是用这个插件开发的菜单部分,因此还是很值得深入研究和学习,通过使用感觉功能很丰富,好多函数不用自己开发和编写,官网上有很详尽的API可以参考,用着算顺手但学习使用的过程中也遇到了一些困难,听过反复测试和查资料都理解了,但也在思考一个问题,怎么样才能使得最快的时间从接触一个新东西到灵活掌握的程度? 这个不仅仅是一个树形结构的菜单,每个节点左边可以有一个复选框,看了看也挺简单的,只需要在setting里面配置一个ch

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

在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></tr><tr><td width=30% runat=server id=Con

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

有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载. 为了演示与做好这个练习,我们先在Views目录下的Home下创建_Partial1.cshtml部分视图,视图内容任你自定义,Insus.NET在本例中只让其显示一些文字与一张图片: 接下来,我们需要建立一个ActionResult()方法,在Controllers目录之下,打开HomeController.cs: 再去Views\Home目录,创建一个DynamicL

ASP.NET中动态加载母版页

在项目开发中,有时应用程序希望能够根据特定的情形来动态地设置母版页.需要动态加载母版页的情形有两种:允许用户使用不同的母版页定制外观呈现:当与其他公司合作,需要调整页面与合作伙伴相同的外观. 开发人员可以通过Page类提供的MasterPageFile属性来为内容页设置母版页.母版页与内容页在页声明周期的早期进行合并.因此不能直接在内容页的Page_Load事件中设置母版页.而需要在Page.PreInit事件中动态加载母版页(Page.PreInit是页执行周期中的第一个事件). [示例]下面

android左右滑动加载分页以及动态加载数据

android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall.ju; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ActivityNotFoundException; impo