Jqgrid - Select 组 header 与 ajax 事件?
Jqgrid - Select for Group header with ajax Event?
我有一个基于 Trirand 的简单分组演示的 JqGrid Table。我做了一些更改以在 Grid.
组 header 中获得 select
我想做的是...当组 header 中 select 的值发生变化时,通过 ajax 调用和下一个调用将这个新值发送到数据库JqGrid Table加载这个值的时候默认显示在select。 (select的值在table的最后一列,记录的Id在第一列)。
我尝试调整我发现的内容 here it's similar to my question but it doesn't seem to work for what I want to do (Here is what I tried - JsFiddle)。
function Test() {
$("table tbody").on('change', 'select', function (e) {
var currentSelect = $(this);
var grid = $('#lstSegPyme');
var id = $(e.target).closest('tr')[0].id;
var Codunicocli = grid.jqGrid('getCell', id, 'ccli');
if (currentSelect.is(".HEstado")) {
alert(id);
}
});
}
更新
我想出了如何调用 ajax 事件。看来我误解了复选框的实现。现在我有了这样的东西,而且很管用!!!
loadComplete: function() {
$("table tbody").on('change', 'select', function(e) {
var currentSelect = $(this);
var SelectValue = currentSelect.val();
if (currentSelect.is(".HEstado")) {
var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').attr('id'); //Get Row Id
var cco = $('#lstSegPyme').jqGrid('getCell', id, 'ccli');
alert(cco); //ajax Code Here
}
});
我现在唯一遇到的困难是...重新加载页面并尝试设置 select
的值时
我已经在 gridComplete 函数中试过了
gridComplete: function () {
var i, group, cssClass,
headerIdPrefix = this.id + "ghead_",
groups = $(this).jqGrid("getGridParam", "groupingView").groups,
l = groups.length;
for (i = 0; i < 1/*l*/; i++) {
group = groups[i];
$(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected")
}
}
但我似乎无法获得 select。这条线有问题吗? $(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected")
在 Jqgrid 中寻找其他一些东西,我找到了解决我的问题的方法。我从用户@Oleg 那里找到了这个 answer,这对我帮助很大。
如果有人想做类似的事情,我会留下例子here。
$("table tbody").on('change', 'select', function (e) {
var currentSelect = $(this);
var SelectValue = currentSelect.val();
if (currentSelect.is(".HEstado")) {
var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').next("tr").attr('id'); //Get Row Id
var Codunicocli = $('#lstSegPyme').jqGrid('getCell', id, 'ccli');
var idEstado = $('#lstSegPyme').jqGrid('getCell', id, 'estc'); //Estado guardado en BD
alert(idEstado);
} //End If
});
我有一个基于 Trirand 的简单分组演示的 JqGrid Table。我做了一些更改以在 Grid.
组 header 中获得 select我想做的是...当组 header 中 select 的值发生变化时,通过 ajax 调用和下一个调用将这个新值发送到数据库JqGrid Table加载这个值的时候默认显示在select。 (select的值在table的最后一列,记录的Id在第一列)。
我尝试调整我发现的内容 here it's similar to my question but it doesn't seem to work for what I want to do (Here is what I tried - JsFiddle)。
function Test() {
$("table tbody").on('change', 'select', function (e) {
var currentSelect = $(this);
var grid = $('#lstSegPyme');
var id = $(e.target).closest('tr')[0].id;
var Codunicocli = grid.jqGrid('getCell', id, 'ccli');
if (currentSelect.is(".HEstado")) {
alert(id);
}
});
}
更新 我想出了如何调用 ajax 事件。看来我误解了复选框的实现。现在我有了这样的东西,而且很管用!!!
loadComplete: function() {
$("table tbody").on('change', 'select', function(e) {
var currentSelect = $(this);
var SelectValue = currentSelect.val();
if (currentSelect.is(".HEstado")) {
var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').attr('id'); //Get Row Id
var cco = $('#lstSegPyme').jqGrid('getCell', id, 'ccli');
alert(cco); //ajax Code Here
}
});
我现在唯一遇到的困难是...重新加载页面并尝试设置 select
的值时我已经在 gridComplete 函数中试过了
gridComplete: function () {
var i, group, cssClass,
headerIdPrefix = this.id + "ghead_",
groups = $(this).jqGrid("getGridParam", "groupingView").groups,
l = groups.length;
for (i = 0; i < 1/*l*/; i++) {
group = groups[i];
$(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected")
}
}
但我似乎无法获得 select。这条线有问题吗? $(this).closest("tr").find("role="option" [value='"+2+"']").attr("selected", "selected")
在 Jqgrid 中寻找其他一些东西,我找到了解决我的问题的方法。我从用户@Oleg 那里找到了这个 answer,这对我帮助很大。
如果有人想做类似的事情,我会留下例子here。
$("table tbody").on('change', 'select', function (e) {
var currentSelect = $(this);
var SelectValue = currentSelect.val();
if (currentSelect.is(".HEstado")) {
var id = $(this).closest('tr').nextUntil('tr.lstSegPymeghead_0').next("tr").attr('id'); //Get Row Id
var Codunicocli = $('#lstSegPyme').jqGrid('getCell', id, 'ccli');
var idEstado = $('#lstSegPyme').jqGrid('getCell', id, 'estc'); //Estado guardado en BD
alert(idEstado);
} //End If
});