0

jquery で編集可能なデータテーブルがあり、すべての列が編集可能です。特定のセル値に基づいてセル編集を有効/無効にしたい。たとえば、下の表では、オペレーティング システムの値が「Windows」の場合、列「FileExtension」を編集不可に設定し、オペレーティング システムの値が「Unix」の場合、列「言語」を編集不可に設定します。

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

テーブルは、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"
                          }
                      ]
                      }
                      );
    });

出来ますか ?

4

1 に答える 1

0

これを行う1つの方法を見つけました。誰かの助けになることを願っています。

$("#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 呼び出しを行い、セル データを更新する必要があります。

これを行うためのより良い方法があれば教えてください。私はすべて耳です。

于 2015-01-31T07:47:08.247 に答える