0

我正在使用 Jquery DataTable Grid。在这里,我将单元格编辑为: this Example

现在,如果“引擎版本”列的值为“420”,那么我想将整行设为只读。

请帮帮我。

编辑:

  var oTable;
        $(document).ready(function () {
          oTable=  $('#example').dataTable({
                "bProcessing": false,
                "bJQueryUI": true,
                "sAjaxSource": "GetWebAlerts.aspx",
                "sPaginationType": "full_numbers",
                "aLengthMenu": [ 10,25,50,100,200,500 ],
                 "fnDrawCallback": function (oSettings) {
                   if (oSettings.bSorted || oSettings.bFiltered) {
                    if (oSettings.aoColumns[1].bVisible == true) {
                        for (var i = 0, iLen = oSettings.aiDisplay.length; i < iLen; i++) {
                            $('td:eq(0)', oSettings.aoData[oSettings.aiDisplay[i]].nTr).html(i + 1);
                        }
                    }
                }
            },
                "aaSorting": [[3, "desc"]],
                aoColumns: [
                 { "bVisible": false, "bSortable": false, "aTargets": [0] },
               {"sClass" : "left", "bVisible": true, "bSortable": false, "aTargets": [1] },
                 { "bVisible": true, "bSortable": true, "aTargets": [2] },
                 { "bVisible": true, "bSortable": true, "aTargets": [3] },
                 { "bVisible": true, "sType": "num-html","bSortable": false,
                    "fnRender": function (oData, sVal) {

                        if (sVal.indexOf("OVERSPEED") >= 0) {                            
                       return "<span title='Overspeed = " +  oData.aData[8] + " KM/H'>" + sVal + "(" + oData.aData[8] +" KM/H)</span>";                                                        
                       }
                        else if (sVal.indexOf("IDLING") >= 0) {
                            return "<span title='Idling from = " + oData.aData[8].split(";")[0] + " For "+ oData.aData[8].split(";")[1] + " Mins'>" + sVal + "("+ oData.aData[8].split(";")[1]+  " Mins)</span>";
                            }
                         else if(sVal.indexOf("Geofence In") >= 0)
                         {
                            return "<span>" + oData.aData[8] + "- IN</span>";
                         }
                          else if(sVal.indexOf("Geofence out") >= 0)
                         {
                            return "<span>" + oData.aData[8] + "- OUT</span>";
                         }
                        else { 

                        return sVal;                              
                         }
                    }, "aTargets": [4], "asSorting": ["desc", "asc"] },

               { "bVisible": true, "bSortable": true, "aTargets": [5] },
                 { "bVisible": true, "bSortable": true, "aTargets": [6] },
                   { "bVisible": true, "bSortable": true, "aTargets": [7] }

                     ]

                 }).makeEditable({
                                    sUpdateURL: "UpdateWebData.aspx?i=0",
                                    "aoColumns": [
                                         null,
                                           null,
                                           null,
                                           null,

                                           {
                                             indicator: 'Saving reason...',
                                             tooltip: 'Click to select reason',
                                             loadtext: 'loading...',
                                             type: 'select',
                                             onblur: 'submit',
                                             data: "{'1':'Accident','2':'Battery Taken Out','3':'In Workshop','4':'Not In Operation','5':'Signal Lost','6':'Other'}"                                                

                                           },


                                           {

                                           },
                                            null
                                     ],
                                       sDeleteURL: "UpdateWebData.aspx?i=1",
                                       oDeleteRowButtonOptions: {   label: "Remove", 
                                                icons: {primary:'ui-icon-trash'}
                                    },

                                });
                           });

这是我的代码。如果我的页面 GetWebAlerts.aspx 中的第 5 个 Json 数据为“0”,我想将其设为只读。

4

2 回答 2

1

在不查看您的代码的情况下,我将尝试解释如何执行此操作。

在他们输入值的 JS 中,检查输入是否为引擎版本,并且值为 420。如果是,则在该行中添加一个名为 420row 的类。

然后在绑定 on click 以更改为 input 的函数中,将选择器更改为 add :not('.420row')

同样,如果您发布您的代码,或者更好地制作一个 jsfiddle,那么我将能够更好地帮助您。

于 2013-02-04T09:11:02.330 回答
0

我使用下面的代码使行不可编辑.....通过将 onclick 事件添加到该特定行并根据您想要使其不可编辑的基础添加条件。例如,请参见下面的代码:

$('#employee tbody tr')
    .live('click', function() {
        var nTds = $('td', this);
        var designation = $(nTds[4]).text();
            if (designation == "****") {
             alert('Employee designation is **** so cannot update now');
            }
    });
于 2014-03-19T14:45:03.627 回答