[英]Custom formatter in jqGrid which calls jQuery function
我有一個帶有自定義格式化程序的jqGrid,它返回兩個復選框:
jQuery(function($){
$("#gridAgenda").jqGrid({
...
colModel: [
...,
"asiste",
...
],
colModel:[
...,
{name:'asiste',formatter:asisteFormater},
...
]
...
});
}
function asisteFormater (cellvalue, options, rowObject) {
return "Sí<input type='checkbox' id='asisteSi'/> No<input type='checkbox' id='asisteNo'/>";
}
$("#asisteSi").click(function () {
...
}
但是我想在檢查兩個復選框中的任何一個時調用jQuery函數,以評估檢查了哪一個並調用ajax函數。 我認為問題是,在創建jqGrid之前asisteSi不存在,所以我不能這樣做。
有人能幫我嗎?
最后我解決了這個問題:
gridComplete: function () {
var rowData = $("#gridAgenda").getRowData();
for (var i = 0; i < rowData.length; i++)
{
var asisteSi="#asisteSi"+rowData[i].id;
var asisteNo="#asisteNo"+rowData[i].id;
$(asisteSi).click(function(){
var actualSi = "#"+this.id;
var actualNo = actualSi.replace("asisteSi","asisteNo");
if($(actualSi).prop('checked')){
$(actualNo).prop('checked', false);
}
//TODO:llamada ajax
});
$(asisteNo).click(function(){
var actualNo = "#"+this.id;
var actualSi = actualNo.replace("asisteNo","asisteSi");
if($(actualNo).prop('checked')){
$(actualSi).prop('checked', false);
}
//TODO:llamada ajax
});
}
}
問題是$(asisteSi)在點擊時有最后一個值,所以我必須得到當前的Id
您應該將回調附件放gridComplete
格定義的gridComplete
選項中,如下所示:
$('#gridAgenda').jqGrid({
...
gridComplete: function () {
$("#asisteSi").click(function () {
// do your deed
});
}
});
補充
順便說一句,如果網格中有多行,則不應使用asisteSi
作為您的id,因為它在頁面中不是唯一的,這會導致未定義的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.