这个问题的场景相信大家都遇到过,比方有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. 【Swift初见】Swift数组(二)

    在苹果的开发文档中对Array还提供了其它的操作算法: 1.Sort函数: 对数组进行排序.依据指定的排序规则,看以下的代码: var array = [2, 3, 4, 5] array.sort{ ...

  2. {head first} --- networking 3

    Chapter 10 无线网络 续 .. Chapter 11 网络安全 Chapter 12 设计网络 涉及到物理的设计网络布局等.我没细看. 附录

  3. Android 计算Bitmap大小

    今天使用LruCache写demo的时候,要获取Bitmap的大小 于是就用到了 return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并返回 ...

  4. vim 配置.vimrc文件

    下面这个.vimrc文件是根据公司里的一个前辈配置的,这里记录下,方便以后使用.它的功能,其实跟网上很多.vimrc配置的相比,还是小儿科.我记录下来,主要还是因为自己已经习惯了这个工作环境跟快捷键. ...

  5. ElasticSearch指南

    ElasticSearch快速指南 ElasticSearch是基于Apache Lucene的分布式搜索引擎, 提供面向文档的搜索服务. 安装ElasticSearch 文档 创建文档 访问文档 更 ...

  6. POJ 3170 线段树优化DP

    题意: 思路: 先搞一个vector 存以T2结尾的结构体 (结构体里面有开始工作的时间和花费) f[i]表示取区间[M,i)的代价 易得f[i]=min(f[k]+w,f[i]);T1<=k ...

  7. JDK版本切换批处理脚本

    我们经常在开发是遇到jdk版本切换的问题 1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可. 2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOM ...

  8. 配置Lotus Domino集群视频详解

    IBM Lotus Domino Server 有个最重要的高可用特新就是集群,它对于任何使用 Domino 服务器的组织,让用户能够持续访问它们的数据库,保证业务不间断运行.下面通过两个视频来学习如 ...

  9. 在物理 Data Guard 中对异构主备系统的支持 (文档 ID 1602437.1)

    Data Guard中主数据库与物理备用数据库(Redo Apply)之间可以有什么差别?本说明针对重做应用和 Oracle Data Guard 12 发行版 1 进行了更新.它适用于 Oracle ...

  10. python stomp activemq客户端

    #coding=utf-8import timeimport sysimport stomp class MyListener(object): def on_error(self, headers, ...