`
matychen
  • 浏览: 172486 次
  • 性别: Icon_minigender_1
  • 来自: 武汉外来务工人员
社区版块
存档分类
最新评论

用JQuery让GT-Grid的下拉列表实现二级联动

阅读更多

最近项目里面非要实现下列列表的二级联动,由于GT-Grid的下拉列表不支持二级联动,只有自己慢慢摸索了。

 

注意:1.如果用jQuery1.3.2在ie下面有问题(不能联动),所以建议使用jQuery1.4.2;

 

更新:由于上传的附件是tomcat下的工程文件,现在修改为myeclipse工程目录。

更新2:增加了一种方法,比方法一更精确。附件并未更新,请自行更新代码。

相关代码如下:

 

$(document).ready(function() {
	var dsConfig = {
		fields : [{
			    name : 'id',
			    type : 'int'
		    }, {
			    name : 'province',
			    type : 'int'
		    }, {
			    name : 'city',
			    type : 'int'
		    }, {
			    name : 'total',
			    type : 'float'
		    }],
		uniqueField : 'id'
	};
	var colsConfig = [{
		    id : 'id',
		    header : "ID",
		    headAlign : 'center',
		    width : 80,
		    align : 'center'
	    }, {
		    id : 'province',
		    header : "省份",
		    headAlign : 'center',
		    width : 80,
		    align : 'center',
		    renderer : GT.Grid.mappingRenderer(province, '未知省份'),// 可以动态取得数据库里面的值
		    editor : {
			    type : 'select',
			    options : province
		    }
	    }, {
		    id : 'city',
		    header : "城市",
		    headAlign : 'center',
		    width : 80,
		    align : 'center',
		    renderer : GT.Grid.mappingRenderer(city, '未知城市'),// 动态取得数据库里面的值
		    editor : {
			    type : 'select',
			    // options : city //这里可以只为省份为1的城市列表。
			    options : {
				    1 : '武汉',
				    2 : '鄂州',
				    3 : '恩施',
				    4 : '黄冈',
				    5 : '黄石',
				    6 : '荆门',
				    7 : '荆州',
				    8 : '潜江'
			    }
		    }
	    }, {
		    id : 'total',
		    header : "总计",
		    headAlign : 'center',
		    width : 130,
		    align : 'center'
	    }];
	var province_value = "";// 用于存放省份下拉框值
	var gridConfig = {
		id : "grid",
		dataset : dsConfig,
		columns : colsConfig,
		container : 'grid_container',
		toolbarPosition : 'bottom',
		toolbarContent : toolbar,// 定义为一个变量,可以让不同的角色能看到不同的toolbar,达到控制角色目的
		pageSize : 10,
		pageSizeList : [5, 10, 15],
		loadURL : 'all.action',
		resizable : true,
		autoLoad : true,
		selectRowByCheck : true,
		remotePaging : false,
		onComplete : function(grid) {
			  $(".gt-menuitem:last-child").hide();
			  // 二级联动
			  if ($("#company_id").length == 0) {
				  $($(".gt-editor-text")[0]).attr("id", "company_select");
				  $($(".gt-editor-text")[1]).attr("id", "department_select");
			  }
			  $("#company_select").bind("change", function() {
				    var url = "companyLink";
				    var params = {
					    company : $('#company_select').val()
				    };
				    $.post(url, params, callBack, 'json');
				    function callBack(date) {
					    var select_value = "";
					    $.each(date.info, function(i, item) {
						      select_value = select_value + "<option value='" + item.id + "'>" + item.va + "</option>";
					      });
					    $("#department_select").html(select_value);
				    }
			    });
		  }

		clickStartEdit : false,
		reloadAfterSave : true,
		recountAfterSave : true,
		defaultRecord : {
			id : 1,
			province : 1,
			city : 1,
			total : 111.01
		}
	};
	var mygrid = new GT.Grid(gridConfig);
	GT.Utils.onLoad(GT.Grid.render(mygrid));

	

 关于如何取class,如:$(".gt-col-grid-province div")

.gt-col-grid-province为td的class,如何定义的呢?gt-col-加上这个grid的id,我的grid的id是“grid",再加上这列的ID,就是:gt-col-grid-province.

 

 

赋值给id后两个下拉列表:

 

<div class="gt-editor-container">
			<select id="province_select" class="gt-editor-text">
				<option value="1">湖北
				</option>
				<option value="2">福建
				</option>
				<option value="3">宁夏
				</option>
			</select>
		</div>
		<div class="gt-editor-container">
			<select id="city_select" class="gt-editor-text">
				<option value="1">武汉
				</option>
				<option value="2">鄂州
				</option>
				<option value="3">恩施
				</option>
				<option value="4">黄冈
				</option>
				<option value="5">黄石
				</option>
				<option value="6">荆门
				</option>
				<option value="7">荆州
				</option>
				<option value="8">潜江
				</option>
			</select>
		</div>

 

主要是用jQuery改变#city_select下拉列表的值。 

 

部分效果图如下:

 

IE6下截图

 

IE6下效果图2

 

 

 

IE6,Firefox3.6,chrome5下测试通过,欢迎拍砖。

 

 

jQuery插件flexigrid使用总结

 

分享到:
评论
12 楼 matychen 2010-07-27  
zhaozengfengw 写道
楼主  有没有双击一行 然后跳出对话框的啊

gt有个行的双击和单击事件,你可以在事件里面写个自己的实现。很简单的。
11 楼 zhaozengfengw 2010-07-27  
楼主  有没有双击一行 然后跳出对话框的啊
10 楼 matychen 2010-06-08  
onComplete : function(grid) {
			  $(".gt-menuitem:last-child").hide();
			  // 二级联动
			  if ($("#company_id").length == 0) {
				  $($(".gt-editor-text")[0]).attr("id", "company_select");
				  $($(".gt-editor-text")[1]).attr("id", "department_select");
			  }
			  $("#company_select").bind("change", function() {
				    var url = "companyLink";
				    var params = {
					    company : $('#company_select').val()
				    };
				    $.post(url, params, callBack, 'json');
				    function callBack(date) {
					    var select_value = "";
					    $.each(date.info, function(i, item) {
						      select_value = select_value + "<option value='" + item.id + "'>" + item.va + "</option>";
					      });
					    $("#department_select").html(select_value);
				    }
			    });
		  }
9 楼 matychen 2010-03-08  
tangyuanjian 写道
感觉代码量还是比较多!

这样就代码多了?笑而不语!
8 楼 tangyuanjian 2010-03-07  
感觉代码量还是比较多!
7 楼 matychen 2010-03-05  
lindongcheng99 写道
试试后,给你个答复。我正要给客户做个,简单实用的查询小页面。


就目前我在用的那个系统,还没出现浏览器不兼容的问题。
6 楼 lindongcheng99 2010-03-05  
试试后,给你个答复。我正要给客户做个,简单实用的查询小页面。
5 楼 matychen 2010-03-04  
相信还是有比较多的人用GT-Grid的,这个功能在GT-Grid里面没有。应该还比较实用。
4 楼 zhys513 2010-03-04  
效果不错哦,LZ加油
3 楼 linjianxiong 2010-03-04  
效果不错,还没真正用上。不错
2 楼 matychen 2010-03-02  
大家用着好用不?
1 楼 ming500 2010-02-26  
不错.支持一下

相关推荐

    jquery二级联动下拉列表

    下面我们将深入探讨如何利用jQuery实现二级联动下拉列表。 首先,我们需要了解什么是二级联动下拉列表。它是由两个或多个下拉列表组成,当用户在一个下拉列表中选择一个选项时,另一个下拉列表的内容会根据前者的选...

    ajax dwr 框架实现二级联动下拉列表源码

    **Ajax DWR 框架实现二级联动下拉列表源码详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。DWR(Direct Web Remoting)则是一个用于Java web应用的开源...

    jQuery+ASP+SQL实现二级联动下拉菜单

    jQuery+ASP+SQL实现二级联动下拉菜单 全国省市数据库可以从网上Down个合适的导入一下就可以了. /**************************** * Author:蓝客密探 * Blog:www.lanke.me * Forum:www.phpdn.cn 详细介绍页面:...

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    jquery -- select美化--多级联动下拉

    标题 "jquery -- select美化--多级联动下拉" 指的是利用 jQuery 插件来实现 Select 的美化和多级联动效果。这种技术可以提升用户体验,使得用户在选择过程中能够更加直观、便捷地找到目标选项。 首先,jQuery 插件...

    可以放到项目中用 多选下拉列表 复选下拉列表 jquery多选列表 多选多级联动下拉列表,有demo

    总结来说,"多选下拉列表"和"复选下拉列表"是提高用户交互体验的重要工具,而jQuery提供了丰富的插件资源,如"mutiselect"和"JqueryMultiselect2017",帮助开发者实现这些功能。通过学习和掌握这些插件的使用,可以...

    jquery 通用三级联动下拉列表.rar

    jquery 通用三级联动下拉列表 , 用Jquery实现的三级联动下拉列表插件,压缩包内有多个不同的版本,其实现的基本原理大同小异,无非是调用方式的不同,第一个是通过读取XML构建,支持IE/firefox,chrome不支持,XML...

    jquery.editable-select

    这个插件旨在增强用户体验,让用户能够直接在下拉列表中输入搜索关键字,而不是只能从预设的选项中选择。这种功能常见于许多网站的搜索过滤和动态填充表单中。 `editable` 标签表明这个插件的核心特性是可以被编辑...

    php代码实现二级联动下拉菜单效果

    在网页设计中,二级联动下拉菜单是一种常见的交互元素,常用于分类选择或者地区筛选等场景。这种功能的实现通常涉及到前端和后端的交互,其中PHP作为后端语言,负责处理数据并返回给前端。本篇文章将详细介绍如何...

    ajax+jquery二级联动实现

    在本文中,我们将深入探讨如何使用AJAX和jQuery来实现二级联动效果,特别是在网页表单中,例如选择籍贯的省份和城市。二级联动是指在一个下拉列表的选择触发后,另一个下拉列表自动填充相关数据。在这个例子中,当...

    jquery.editable-select插件使用案例

    此为jquery.editable-select插件的使用案例,这是一款非常好用的插件,好用之处:既可下拉框选择也可手动输入,而且手动输入还能对下拉框选项进行过滤,而且还可实现一些相关事件,具体请查看官方文档。

    jquery-bootstrap-accordion下拉菜单u.rar

    《jQuery-Bootstrap Accordion下拉菜单的实现与应用》 在Web前端开发中,交互性和用户体验是至关重要的因素,而下拉菜单则是提升用户界面友好性的一种常见手段。本资源"jquery-bootstrap-accordion下拉菜单u.rar...

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    **jQuery UI** 是一个强大的JavaScript库,用于构建用户界面,它基于流行的jQuery库。这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定...

    Ajax实现java web 中下拉列表二级联动

    在Java Web开发中,二级联动下拉列表是一种常见的交互功能,通常用于地区选择、类别分类等场景。这个功能使得用户在选择一级选项时,二级选项会动态更新,提供相关的子选项。Ajax(Asynchronous JavaScript and XML...

    GT-GRID插件下载

    - 数据过滤:GT-GRID提供筛选功能,让用户根据特定条件过滤数据,实现定制化查看。 - 编辑与操作:内置的行内编辑、弹出编辑模式,使用户可以直接在表格中修改数据,并支持添加、删除记录操作。 - 自动调整大小:...

    phpmysql下拉菜单二级联动

    在PHP和MySQL环境中实现下拉菜单的二级联动是一种常见的交互设计,它允许用户在选择一级菜单后,二级菜单根据一级菜单的选择动态加载相关数据。这种技术广泛应用于网站的地区选择、分类导航等场景。下面我们将深入...

    jquery.datepicker-zh-CN.js

    jquery datepicker 的中文包 调用方法 &lt;script src="./public/js/jquery-ui-1.10.3.min.js"&gt; &lt;script src="./public/js/jquery.datepicker-zh-CN.js"&gt;&lt;/script&gt; &lt;link href="./public/css/jqueryui/jquery-ui-...

    jquery-JSON省市区街道四级联动插件.zip

    总结,"jquery-JSON省市区街道四级联动插件"是基于jQuery实现的一种高效解决方案,它结合了JSON的数据交换优势和jQuery的便捷性,为Web开发者提供了简单易用的地址选择工具。理解其工作原理和使用方法,有助于提升...

    jQuery插件city-picker实现省市区三级联动

    `jQuery city-picker` 是一个方便的插件,它可以帮助开发者快速实现省市区三级联动效果,即当用户在选择省份时,市和区会根据所选的省份自动更新。下面将详细介绍这个插件的工作原理和使用方法。 ### jQuery 插件...

    jquery ajax 实现省市县下拉列表联动

    在网页开发中,实现省市县下拉列表联动是一种常见的需求,尤其在填写地址或选择地理位置时。...无论使用哪种方式,实现省市县联动的核心思路是一致的:监听上一级选择的变化,动态加载和更新下拉列表。

Global site tag (gtag.js) - Google Analytics