Enable/disable 根据每一行的特定列的值编辑单元格

Enable/disable cell editing based on a particular column's value for each row

我有一个 jquery editable 数据table,所有列都是 editable。我想 enable/disable 基于特定单元格值的单元格编辑。例如,在下面的 table 中,如果操作系统值为 "Windows",则将列 "FileExtension" 设置为非 editable,如果操作系统值为 "Unix",则将列 "Language" 作为非 editable 。

 --------------------------------------------------
| OperatingSystem  FileExtenstion   Language       |
 --------------------------------------------------
| Windows          non-editable     editable       |
| Unix             editable         non-editable   |
| Windows          non-editable     editable       |
 --------------------------------------------------

Table 正在通过 Ajax 来源动态填充。

$(document).ready(function () {
        $("#dbResultsTable").dataTable({
            "bServerSide": true,
            "sAjaxSource": "/EditableTables/TableEditAjaxRequest",
            "bProcessing": true,
            "sPaginationType": "full_numbers",
            "bJQueryUI": false,
            "scrollX" : true,
             "aoColumns": [
                          {  "sName": "OperatingSystem",
                          },
                           {
                             "sName": "FileExtenstion",
                            },
                             { 
                              "sName": "Language",
                             }
                  ]
     }).makeEditable({
        "aoColumns": [
                          {
                              cssclass: "required"
                          },
                            {
                              cssclass: "required"
                          },
                          {
                              cssclass: "required"
                          }
                      ]
                      }
                      );
    });

可能吗?

好的,我找到了一种方法,我希望它能帮助别人。

$("#dbResultsTable tr").live("mousedown", function() {
        if ($(this).find("td:eq(0)").text()=="Windows") {
            $(this).find("td:eq(1)").empty().unbind(); 
        } else if($(this).find("td:eq(0)").text()=="Unix"){
             $(this).find("td:eq(2)").empty().unbind(); 
            }
    }); 

注意:- 但如果您的单元有一些数据并且您已使用上述功能清除+禁用它,则这不会在服务器端更新数据。您必须拨打 ajax 电话并更新手机数据。

如果有更好的方法,请告诉我,我洗耳恭听。