jQuery EasyUI编辑DataGrid用combobox实现多级联动_jquery

我在项目中设计课程表的时候需要用到老师和分类之间的多级联动。

首先是一张效果图:

下面是实现的代码:

<body>
<script type="text/javascript">
$(function(){
var editing ; //判断用户是否处于编辑状态
var flag ; //判断新增和修改方法
$('#set_schedule').datagrid({
idField:'id' ,
fitColumns: false ,
url:'scheduleAction_loadScheduleData.action?sureDocumentId='+$("#sureDocumentId").val() ,
striped: true ,
loadMsg: '数据正在加载,请耐心的等待...' ,
rownumbers:true ,
singleSelect : true,
frozenColumns:[[
{field:'ck' , checkbox:true}
]],
columns:[[
{
field:'dateTime' ,
title:'时间' ,
width:100 ,
align:'center' ,
editor:{
type:'datebox' ,
options:{
required:true ,
missingMessage:'时间必填!' ,
editable:false
}
}
},
{
field:'morningTime' ,
title:'上午上课时间段' ,
width:126 ,
align:'center',
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'时间段必填!'
}
}
},
{
field:'morningCourse' ,
title:'上午课程' ,
width:100 ,
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'课程必填!'
}
}
},
{
field:'aa1' ,
title:'主讲老师分类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?parentId=0&type=27',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'aa1'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb1'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'codeTypeAction_search.action?type=28&parentId='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'bb1' ,
title:'主讲老师细类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?type=28',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb1'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'morningTeacherId'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'teacherAction_search.action?teacherTypeId2='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'morningTeacherId' ,
title:'主讲老师' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'teacherAction_search.action',
valueField:'id' ,
textField:'name'
}
}
},
{
field:'afternoonTime' ,
title:'下午上课时间段' ,
width:126 ,
align:'center' ,
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'时间段必填!'
}
}
},
{
field:'afternoonCourse' ,
title:'下午课程' ,
width:100 ,
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'课程必填!'
}
}
},
{
field:'aa2' ,
title:'主讲老师分类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?parentId=0&type=27',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'aa2'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb2'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'codeTypeAction_search.action?type=28&parentId='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'bb2' ,
title:'主讲老师细类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?type=28',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb2'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'afternoonTeacherId'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'teacherAction_search.action?teacherTypeId2='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'afternoonTeacherId' ,
title:'主讲老师' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'teacherAction_search.action',
valueField:'id' ,
textField:'name'
}
}
},
{
field:'eveningTime' ,
title:'晚上上课时间段' ,
width:126 ,
align:'center' ,
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'时间段必填!'
}
}
},
{
field:'eveningCourse' ,
title:'晚上课程' ,
width:100 ,
editor:{
type:'validatebox' ,
options:{
required:true ,
missingMessage:'课程必填!'
}
}
},
{
field:'aa3' ,
title:'主讲老师分类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?parentId=0&type=27',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'aa3'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb3'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'codeTypeAction_search.action?type=28&parentId='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'bb3' ,
title:'主讲老师细类' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'codeTypeAction_search.action?type=28',
valueField:'id' ,
textField:'name',
onSelect:function(data){
var row = $('#set_schedule').datagrid('getSelected');
var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号
var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb3'}).target;
var value = thisTarget.combobox('getValue');
var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'eveningTeacherId'}).target;
target.combobox('clear'); //清除原来的数据
var url = 'teacherAction_search.action?teacherTypeId2='+value;
target.combobox('reload', url);//联动下拉列表重载
}
}
}
},
{
field:'eveningTeacherId' ,
title:'主讲老师' ,
width:100 ,
editor : {
type : 'combobox',
options : {
url:'teacherAction_search.action',
valueField:'id' ,
textField:'name'
}
}
}
]] ,
pagination: true ,
pageSize: 10 ,
pageList:[5,10,15,20,50] ,
toolbar:[
{
text:'新增课程',
iconCls:'icon-add' ,
handler:function(){
if(editing == undefined){
flag = 'add';
//1 先取消所有的选中状态
$('#set_schedule').datagrid('unselectAll');
//2追加一行
$('#set_schedule').datagrid('appendRow',{description:''});
//3获取当前页的行号
editing = $('#set_schedule').datagrid('getRows').length -1;
//4选中并开启编辑状态
$('#set_schedule').datagrid('selectRow',editing);
$('#set_schedule').datagrid('beginEdit', editing);
}
}
}/* ,{
text:'修改课程',
iconCls:'icon-edit' ,
handler:function(){
var arr = $('#set_schedule').datagrid('getSelections');
if(arr.length != 1){
$.messager.show({
title:'提示信息',
msg:'只能选择一条记录进行修改!'
});
} else {
if(editing == undefined){
flag = 'edit';
//根据行记录对象获取该行的索引位置
editing = $('#set_schedule').datagrid('getRowIndex' , arr[0]);
//开启编辑状态
$('#set_schedule').datagrid('beginEdit',editing);
}
}
}
} */,{
text:'保存课程',
iconCls:'icon-save' ,
handler:function(){
//保存之前进行数据的校验 , 然后结束编辑并师傅编辑状态字段
if($('#set_schedule').datagrid('validateRow',editing)){
$('#set_schedule').datagrid('endEdit', editing);
editing = undefined;
}
}
},{
text:'删除课程',
iconCls:'icon-remove' ,
handler:function(){
var arr = $('#set_schedule').datagrid('getSelections');
if(arr.length <= 0 ){
$.messager.show({
title:'提示信息',
msg:'请选择进行删除操作!'
});
} else {
$.messager.confirm('提示信息' , '确认删除?' , function(r){
if(r){
var ids = '';
for(var i = 0 ; i < arr.length ; i++){
ids += arr[i].id + ',';
}
ids = ids.substring(0,ids.length-1);
$.post('scheduleAction_delete.action' , {ids:ids},function(result){
$('#set_schedule').datagrid('reload');
$.messager.show({
title:'提示信息',
msg:'操作成功!'
});
});
} else {
return ;
}
});
}
}
},{
text:'取消操作',
iconCls:'icon-cancel' ,
handler:function(){
//回滚数据
$('#set_schedule').datagrid('rejectChanges');
editing = undefined;
}
}
] ,
onAfterEdit:function(index , record){
var data = $('#moduleform').serialize();
$.post(flag=='add'?'scheduleAction_addSchedule.action?'+data:'scheduleAction_updateSchedule.action' , record , function(result){
var data = $.parseJSON(result);
$('#set_schedule').datagrid('reload');
$.messager.show({
title:'提示信息',
msg:data.message
});
},'text');
}
});
});
</script>
<form id="moduleform" method="post">
<s:hidden name="sureDocumentId" id="sureDocumentId"></s:hidden>
<table cellspacing="1" cellpadding="5" class="tb_background2" width="100%">
<tr>
<td width="20%" class="td_right">总学时:</td>
<td width="28%" class="td_left">
<s:textfield name="totalLearnTime" id="totalLearnTime" size="32"/>学时
</td>
<td width="20%" class="td_right">是否可见:</td>
<td width="28%" class="td_left">
<s:select list="#{'0':'可见','1':'不可见' }" cssStyle="width:200px;" name="type" id="type"></s:select>
</td>
</tr>
</table>
</form>
<table id="set_schedule"></table>
</body>

以上所述是小编给大家介绍的jQuery EasyUI编辑DataGrid用combobox实现多级联动,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索联动
, easyui
, datagrid
, combobox
, 多级联动
easyui多级联动
wpf combobox多级联动、easyui combobox 联动、easyui下拉框多级联动、easyui多级联动、easyui datagrid 联动,以便于您获取更多的相关知识。

时间: 2024-08-31 12:11:33

jQuery EasyUI编辑DataGrid用combobox实现多级联动_jquery的相关文章

详解jquery easyui之datagrid使用参考_jquery

本文介绍了jquery easyui之datagrid使用,具体如下: 创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上的div标签: <div id="magazineGrid"> </div> js代码: $('#magazineGrid').datagrid({ height: 340, url: 'url', method: 'POST', queryParam

jQuery EasyUI之DataGrid使用实例详解_jquery

jQuery EasyUI是一个轻量级的Web前端开发框架,提供了很多的现成组件帮助程序员减轻前端代码开发量,之前有个项目中就用到了其中的DataGrid. jQuery EasyUI框架的官方主页,可以下载完整开发包,里面有示例代码可以参考. 运行效果图: 由于我使用的是ASP.NET webform技术,下面我就贴出主要的代码以供参考. 在页面中首先要引用相关的css以及js文件,这样才能使用该组件. css部分: <link href="../Js/jQueryEasyUI/them

jquery easy-ui使用datagrid插件,调用servlet没有反应,请帮忙看看,谢谢!

问题描述 ===============servlet配置================<servlet><servlet-name>myservlet</servlet-name><servlet-class>curve.GetDataServlet</servlet-class></servlet><servlet-mapping><servlet-name>myservlet</servlet-n

jQuery EasyUI中DataGird动态生成列的方法_jquery

EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍EasyUI中DataGird动态生成列的方法. DataGird动态生成列,实际上就是控制DataGird的 columns 属性值,下面通过ajax异步调用后台columns的数据,进行绑定. <table id="dg"></table> <script>

ASP.NET MVC中EasyUI的datagrid跨域调用实现代码_jquery

最近项目中需要跨域调用其他项目的数据,其他项目也是使用的EasyUI的datagrid组件,开始以为直接在datagrid的url属性定义为其他项目的url地址即可,可是测试下发现的确是返回了json数据但是json数据提示"invalid label" 错误,网上搜索了下错误解决办法,参考 "JavaScript处理Json的invalid label错误解决办法"的方法利用datagrid的loadData方法加载并转换了json还是提示上述错误,感觉原因不在格

如何解决jQuery EasyUI 已打开Tab重新加载问题_jquery

先给大家说下我的需求,如下: 点击左侧已经打开的tab可以刷新重新加载datagrid. 也就是说解决easyui 左侧tab重新刷新加载问题实现. 实现如下: function addTab(subtitle, url) { if (!$('#tabs').tabs('exists', subtitle)) { $('#tabs').tabs('add', { title : subtitle, content :<span style="font-family: Arial, Helv

jQuery EasyUI API 中文文档 - ProgressBar 进度条_jquery

用$.fn.progressbar.defaults重写defaults. 依赖 none 用法示例 创建ProgressBar ProgressBar能够从html标记创建或者编程创建.从标记创建更容易些,把 'easyui-progressbar' 类加入到<div/>标记. 复制代码 代码如下: <div id="p" class="easyui-progressbar" style="width:400px;">&

jQuery Easyui 验证两次密码输入是否相等_jquery

什么是 jQuery EasyUI jQuery EasyUI 框架提供了创建网页所需的一切,帮助您轻松建立站点. easyui 是一个基于 jQuery 的框架,集成了各种用户界面插件. easyui 提供建立现代化的具有交互性的 javascript 应用的必要的功能. 使用 easyui,您不需要写太多 javascript 代码,一般情况下您只需要使用一些 html 标记来定义用户界面. HTML 网页的完整框架. easyui 节省了开发产品的时间和规模. easyui 非常简单,但是

关于 jQuery Easyui异步加载tree的问题解析_jquery

想要实现从本地中加载json文件,通过事件来动态的插入到ul中时,遇到了一小bug html中代码是这样的 <ul class="easyui-tree" id="tt"></ul> js中的代码 $(".next-menu:nth-child(1) a").click(function() { var $IDstr = $(this).attr("id"), $treeIDNum = parseInt