如何实现jqgrid的级联组合框呢?就是类似:先选中"国家"组合框、"城市"组合框的内容根据"国家"组合框的内容而改变。在网上查了一下、有人提出来过、但无人解决。想了半天终于解决了。
基本思路:
1 国家对应的城市肯定要用一个变量保存起来。类如:
var citys={
{'contry':'china',
'city':'beijing'
},
{'contry':'china',
'city':'shanghai'
},
{'contry':'china',
'city':'lanjing'
},
{'contry':'americal',
'city':'newyouk'
},
{'contry':'americal',
'city':'warshonton'
}
}
2 jqgrid点击城市单元格时、肯定要先根据columnModel中的editoptions中的value属性(也就是select的选项)生成select组合框。要在select控件生成之前改变editoptions的value属性、select中的选项值也就改变了。用调试跟踪的方法、我发现这个功能在jqgrid中的editCell函数中。修改这个函数
原来的函数:
$.jgrid.extend({
editCell : function (iRow,iCol, ed){
return this.each(function (){
var $t = this, nm, tmp,cc, cm;
if (!$t.grid || $t.p.cellEdit !== true|| ) {return;}
改为:
$.jgrid.extend({
editCell : function (iRow,iCol, ed){
return this.each(function (){
var $t = this, nm, tmp,cc, cm,
flg;
if (beforeFocus !='undefind'){
flg=beforeFocus(iRow,iCol);
}if (!$t.grid || $t.p.cellEdit !== true||
!flg ) {return;}
说明:
1 增加了一个flg变量、用来保存自定义函数beforeFocus的返回值、假如没有选中国家
则editCell函数返回、城市组合框就不能输入了
2修改colunmModel的任务就交给beforeFocus函数了。
再来看beforeFocus函数
function beforeFocus(iRow,iCol){
if (iCol==2){
var ids=$("#gridTable").getDataIDs();
//取得选择行的数据
var rdata=$("#gridTable").getRowData (ids[iRow])[0];
//取得选择的国家值
var v_country=rdata.country
if (v_country==""){
alert("请首先输入国家!")
return false;
}
//生成columnModel的editoptions的value的字符串
var selectStr=""
$.each(citys,function(i,rowdt){
if (rowdt.country==v_country){
selectStr+=";"+rowdt.city;
}
});
//设置columnModel
$("#gridTable").setColProp("city",{editoptions:{value:selectStr.substr(1)}});
}
return true;
}
测试ok!
分享到:
相关推荐
使用场景及目标:适用于需要通过 JqGrid 实现复杂行操作和管理的具体应用场景,如多行数据的选择与打印等功能开发,帮助开发者更好地理解和运用 JqGrid 表格插件的高级特性。 阅读建议:由于涉及到多个 JavaScript ...
这个项目基于MyEclipse2014开发环境,主要目标是实现数据的查询功能并通过jqGrid进行前端展示。 **jqGrid** 是一个非常强大的JavaScript表格插件,它提供了丰富的特性,如分页、排序、过滤、编辑、导入导出数据等...
"基于jqgrid实现树形菜单分页列表查询"这一主题,旨在创建一个既能展示层级结构又能进行高效分页查询的表格组件。jqGrid是一款强大的jQuery插件,它提供了丰富的功能,如数据网格、分页、排序、过滤、编辑等,同时...
本教程将深入探讨如何利用jqGrid来实现美观且功能丰富的表格样式。 首先,我们需要了解jqGrid的基本概念。jqGrid是由Trirand公司开发的,基于jQuery的开源项目,它提供了数据网格的功能,支持数据分页、排序、过滤...
在jqGrid中,Spring可以管理各种bean,包括数据库连接池、DAO、Service等,实现组件间的解耦。 **3. Hibernate** Hibernate是Java领域的一款ORM(对象关系映射)框架,它将数据库操作转换为对Java对象的操作,降低...
在本教程中,我们将深入探讨如何利用jqGrid实现数据的分组显示和统计,这对于数据分析和报告呈现来说尤其重要。 一、分组显示 1. 初始化jqGrid 首先,我们需要在HTML中创建一个表格元素,并通过jQuery初始化jqGrid...
总结来说,利用jqGrid实现类似Excel的录入功能,关键在于理解其配置选项和方法,灵活运用行内编辑、弹出式编辑、数据验证和交互反馈等特性。通过熟练掌握jqGrid,开发者可以构建功能强大且用户友好的Web数据管理应用...
在这个项目文件“RuanTai.Finance”中,我们将深入探讨如何使用 jqGrid 实现这些功能,并且在修改和添加操作时使用 modal 弹出框来增强用户体验。 首先,让我们看看 jqGrid 的增删改查功能: **增加(Add)**:在 ...
jqgrid 实现数据行列合计
在这个主题中,我们将探讨如何利用jqGrid来实现图片上传的功能,并结合Java后端的Servlet技术,构建一个完整的文件上传系统。首先,我们来看看前端部分。 1. **jqGrid 配置** 在jqGrid中添加上传功能,我们需要对...
jqGrid控件导入导出Excel文件,将几个jqgrid导出一份Excel多sheet文件 ,亦可多sheet的excel导入至多个jqGrid表格。
在这个“jqGrid自定义组合控件范例”中,我们将深入探讨如何利用jqGrid的自定义编辑类型(edittype)来创建更符合用户需求的交互式控件,从而提升用户体验。 首先,理解jqGrid的列模型(colModel)是关键。列模型...
在这个项目中,我们将探讨如何实现jqGrid的三级表头功能,并且支持冻结列以及拖动列的功能。 首先,让我们了解什么是三级表头。在标准的表格中,我们通常有单一或双层的表头,而在三级表头中,列标题被分为了三个...
jqGrid是一款功能强大的jQuery插件,用于在网页上实现数据网格展示。它不仅支持数据展示,还提供了丰富的交互功能,如排序、搜索、分页等,并且允许用户自定义列样式和格式。 #### 二、jqGrid中的数据编辑特性 根据...
在这个“JQGrid本地数据分页”的示例中,我们将探讨如何使用JQGrid实现对本地数据的分页处理。 JQGrid提供了一种灵活的方式来处理数据,无论是从服务器获取还是直接使用本地数据。本地数据分页意味着数据已经在...
在这个场景中,我们将详细探讨如何使用jqGrid来实现ajax后端代码交付、分页、多选以及在切换分页时保持选中的状态。 首先,要实现ajax后端代码交付,我们需要在jqGrid中配置服务器交互。jqGrid支持使用AJAX进行数据...
本文将详细讲解如何利用jQuery实现网格(Grid)中的列拖动功能,以及如何展示和压缩内容,以达到类似Excel的效果。 首先,我们需要引入jQuery库和jQuery Grid插件的相关文件。jQuery Grid通常基于jQuery UI,因此...
jQgrid使用ajax来实现对请求与响应的处理。 皮肤 从3.5版本开始,jQgrid完全支持jquery UI的theme。我们可以从http://jqueryui.com/themeroller/下载我们所需要的theme。当然,你也可以编辑自己的theme。jQgrid也...
要实现“PHP+jqGrid表格插件实现增删改查”,首先需要在HTML页面中引入jqGrid的CSS和JS文件,然后创建一个表格元素,定义相应的列名和ID。接着,使用jQuery初始化jqGrid,设置数据源(通常是PHP脚本返回的JSON或XML...