Javascript jqGrid中调用jQuery函数的自定义格式化程序

Javascript jqGrid中调用jQuery函数的自定义格式化程序,javascript,jquery,checkbox,jqgrid,Javascript,Jquery,Checkbox,Jqgrid,我有一个带有自定义格式化程序的jqGrid,它返回两个复选框: jQuery(function($){ $("#gridAgenda").jqGrid({ ... colModel: [ ..., "asiste", ... ], colModel:[ ..., {name:'asiste',formatter:asisteFormater}, ...

我有一个带有自定义格式化程序的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(函数($){
$(“#网格议程”).jqGrid({
...
colModel:[
...,
“亚洲”,
...
],
colModel:[
...,  
{name:'asiste',格式化程序:asisteformatter},
...
]
...
});
}
函数AsisteFormatter(单元格值、选项、行对象){
返回“SíNo”;
}
$(“#asisteSi”)。单击(函数(){
...
}
但是我想在选中两个复选框中的任何一个时调用jQuery函数,以评估选中了哪一个并调用ajax函数。我认为问题是,在创建jqGrid之前,asisteSi不存在,所以我无法这样做


有人能帮我吗?

您应该将回调附件放入网格定义的
gridComplete
选项中,如下所示:

$('#gridAgenda').jqGrid({
    ...
    gridComplete: function () {
        $("#asisteSi").click(function () {
            // do your deed
        });
    }
});
补充


顺便说一句,如果网格中有多行,您不应该使用
asisteSi
作为id,因为它在页面中不是唯一的,这会导致未定义的行为。

最后,我用这种方式解决了:

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                 
            });
         }
}
gridComplete:函数(){
var rowData=$(“#gridAgenda”).getRowData();
对于(var i=0;i
问题是$(asisteSi)在do click时具有最后一个值,因此我必须获取当前Id