这个问题的场景相信大家都遇到过,比方有A,B,C三列,B,C列均为下拉框。可是C列的值是由B列的值来决定的。即C列中的值是动态变化的,变化的根据就是B列中你选择的值。

本文给出的是一个有用,简易快捷的实现方式。先看图:

本样例实现的假设是常白班,则班别那一列仅仅显示白班。否则的话,那就显示白晚班。能够看成是两列联动。

实现核心代码为:

 onSelectRow: function (id) {
if (id && id !== lastSel) {
jQuery("#TblClassTypeId").restoreRow(lastSel);
lastSel = id;
}
var editkey = $('#TblClassTypeId').jqGrid('getCell', id, 'Id_Key');
var editparameters = {
keys: true,
extraparam: {
"editkey": editkey
},
oneditfunc: function () {
$('#' + id + '_WorkerId').attr('readonly', true);
}
};
jQuery("#TblClassTypeId").editRow(id, editparameters); $('#' + id + '_IsAlwaysDay').change(function () {
var selectvalue = $(this).val();
var classTypeCol = $('#' + id + '_ClassType');
classTypeCol.empty();
if (selectvalue == "是") {
classTypeCol.append("<option value=\"白班\">白班</option>");
}
else
{
classTypeCol.append("<option value=\"白班\">白班</option>")
.append("<option value=\"晚班\">晚班</option>");
}
});
},

在行编辑模式中,选择触发动作为选择行(onSelectRow)时。这时。输入单元格的空间Id为id+"_colName"。id为行的id.  拿到控件的Id,就能够加入select的change事件。

在这个事件中能够进行联动列的处理。如上面代码。因为下拉选项比較简单,我选择直接赋值。假设下拉选项比較多的话,能够用ajax从服务端获取。

实现行编辑模式中的列联动是不是非常easy。相对于网上介绍的用列的formaterr与unformat和custom_element与custom_value的确简单了非常多。

以下我们来看看表单编辑模式的联动。相同实现也非常easy。在上图中点击新增,将会出现例如以下界面:



核心代码为:

 //加入
{
beforeShowForm : function (formid)
{
$('#WorkerId', formid).removeAttr("readonly", "readonly");
$('#IsAlwaysDay',formid).change(function () {
var selectvalue = $(this).val();
var classTypeCol = $('#ClassType',formid);
classTypeCol.empty();
if (selectvalue == "是") {
classTypeCol.append("<option value=\"白班\">白班</option>");
}
else {
classTypeCol.append("<option value=\"白班\">白班</option>")
.append("<option value=\"晚班\">晚班</option>");
}
});
},
reloadAfterSubmit: true,
},

在加入button相应的事件beforeShowForm中。获取控件Id为$(#colName,formId).   formId为jqgird自己主动传送给我们的。

获取到控件的Id后,后面的实现方式就非常相似了。问题也就攻克了。

关于这个实现方式,我也查了非常多的资料,比对了不同的实现方式。

总想找到一个快捷简易的实现方式。当然。这仅仅是个演示演示样例,假设实战,这些代码都能够进行再封装重构。能够实现更简单。

OK,解说完了。希望对大家有所帮助。

在这里要感谢一下这个看起来有点像韩寒的兄弟:泰迪小贱熊,他的这篇文章jqGrid
行编辑 select 3级联动 的一种实现方法
给了我本文的实现灵感。

jqgrid 实现行编辑,表单编辑的列联动的更多相关文章

  1. 【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用

    当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局. 步骤1.在HTML ...

  2. 创建展开行明细编辑表单的 CRUD 应用

    http://www.runoob.com/jeasyui/jeasyui-app-crud3.html jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用 当切换数据网格 ...

  3. C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面

    个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等 ...

  4. Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面 z

    http://www.cnblogs.com/zuowj/p/4504130.html 不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景 也最为 ...

  5. vue的表单编辑删除,保存取消功能

    过年回来第一篇博客,可能说的不是很清楚,而且心情可能也不是特别的high,虽然今天是元宵,我还在办公室11.30在加班,但就是想把写过的代码记下来,怕以后可能真的忘了.(心将塞未塞,欲塞未满) VUE ...

  6. atitit.编辑表单的实现最佳实践dwr jq easyui

    atitit.编辑表单的实现最佳实践dwr jq easyui 1. 提交表单 1 2. 表单验证 1 3. 数据保存使用meger方式取代save&update方式 1 3.1. Filte ...

  7. atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模

    )----编辑表单建模 1. 建模语言的选型anno+html...不是uml 1 2. 指定显示模板 @BeanEditForm(tmplt="c:/edit.html") 1 ...

  8. ASP.NET MVC 音乐商店 - 5. 通过支架创建编辑表单

    在上一章,我们已经从数据库获取数据,然后显示出来,这一章,我们将允许编辑数据. 创建 StoreManagerController 控制器 我们将要创建称为 StoreManager 的控制器,对于这 ...

  9. ASP.NET Core Razor 编辑表单 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 编辑表单 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 编辑表单 上一章节我们介绍了标签助手和 HT ...

随机推荐

  1. android側滑菜单-DrawerLayout的基本使用

    眼下主流App开发中,部分是以側滑菜单为主布局架构,曾经做android側滑菜单时.大多选择使用github上的第三方开源框架SildingMenu,可是这个框架还是稍显笨重.好消息是google已经 ...

  2. sql-server 2005数据库文件恢复(检測到基于一致性的逻辑 I/O 错误)

    今天sql-server数据库突然报错: SQL Server 检測到基于一致性的逻辑 I/O 错误 校验和不对(应为: 0x7c781313,但实际为: 0x67a313c9). 在文件 'C:\P ...

  3. UI_搭建MVC

    新建RootViewController 继承于 UIViewController 新建RootView 继承于 UIView AppDelegate.m 中引入 #import "Root ...

  4. 45. Express 框架 静态文件处理

    转自:http://www.runoob.com/nodejs/nodejs-express-framework.html Express 提供了内置的中间件 express.static 来设置静态 ...

  5. es6 --- var const let

    var  const   let  区别 今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1. const ...

  6. Java_Learn

    20180417 集合类 Collection 如果是实现了list接口的集合类,具备的特点是有序,可重复: 如果是实现了set接口的集合类,具备的特点是无序,不可重复: Collection中的方法 ...

  7. Javascript和jquery事件--事件冒泡和事件捕获

    jQuery 是一个 JavaScript 库,jQuery 极大地简化了 JavaScript 编程,在有关jq的描述中,jq是兼容现有的主流浏览器,比如谷歌.火狐,safari等(当然是指较新的版 ...

  8. GetInvocationList 委托链表

    最近发现C#程序初始化时在构造函数中,偶尔出现事件注册不成功.后查资料发现有GetInvocationList 这么一个获取类中的委托链表的函数, 使用方法如下: 1.在需委托的类(Class1)中增 ...

  9. 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁

    这篇讲讲ReentrantReadWriteLock可重入读写锁,它不仅是读写锁的实现,而且支持可重入性. 聊聊高并发(十五)实现一个简单的读-写锁(共享-排他锁) 这篇讲了怎样模拟一个读写锁. 可重 ...

  10. cocos2d-x 3.0 Loading界面实现

    这个世界每一天都在验证我们的渺小,但我们却在努力创造,不断的在这生活的画卷中留下自己的脚印.或许等到我们老去的那一天,老得不能动仅仅能靠回顾的那一天.你躺在轮椅上,不断的回顾过去.相思的痛苦忘不了,相 ...