如何在jqGrid中将元素ID设置为表单元格

How to set an element ID to a table cell in jqGrid?

本文关键字:设置 ID 表单 单元格 元素 jqGrid      更新时间:2023-09-26

其实我有两个问题:我正在使用jqgrid,我有一个自定义复选框格式化器的列(说Passed),一个名为ID的列和其他一些列。

Q 1)我想将id设置为Passed列的单元格,它应该是ID列单元格的值。任何想法?

Q 2)我如何用jquery改变Passed列单元格的值?

额外的注释:1)事实上,我在我的MVC 4项目中使用MvcJqGrid,我试图处理这些复选框的变化事件,最终能够获得它们的值并发送到相关的控制器。

2)我的主要问题是,我不能设置正确的或任何值,这些复选框或网格单元格根据点击它们。

现在,作为一个失败的尝试,我的格式化程序是这样的:

function pass(cellvalue, options, rowobject) {
    return '<input type="checkbox" id="' + cellvalue + '" checked="checked" onclick="chkChange(''' + cellvalue + ''', ''#' + cellvalue + ''')" />';
}

现在,我将ID单元格值推送到Passed单元格,它按预期工作。事件函数

function chkChange(bval, id) {        
    if (bval != 'false')
        $(id).val('false');
    else
        $(id).val('true');        
}

通过这段代码,我不能改变复选框的值。也许我应该操作单元格值而不是复选框。如果是这样的话,似乎这个问题的解决方案就是我的Q 2的答案。

找到了!该死的…!等了12个小时……

我像这样改变了格式化器:

function pass(cellvalue, options, rowobject) {        
    return '<input type="checkbox" id="' + cellvalue + '" checked="checked" onclick="chkChange(''#' + cellvalue + ''')" />';
}

和事件函数如下:

function chkChange(id) {                
 if ($(id).val() != 'false')
    $(id).val('false');
 else
    $(id).val('true');       
}

然后那个该死的bug就消失了…