1

いくつかのチェックボックスが入っているjqxGridがあります。必要なのは、チェックボックスが変更されたときに発生するイベントを見つけることです。私が試してみました:

  • changed
  • cellbeginedit
  • cellendedit
  • cellvaluechanged
  • cellvaluechanging

。すべて無駄に。

セルが変更されたときに起動してイベントを発生させたくありません。この1つのチェックボックスだけです。

これをどのように達成できるかについてのアイデアはありますか?
以下のコードを含めました。
チェックボックスは「再証明書」行です

$("#ModulesGrid").jqxGrid({
        width: 890,
        height: 350,
        theme: modulesTheme,
        columnsresize: true,
        source: dataAdapter,
        pageable: true,
        editable: true,
        columns: [
                  { text: 'Module Name', datafield: 'modulename', width: 100, editable: false },
                  { text: 'Optional', datafield: 'Optional', columntype: 'checkbox', width: 100 },
                  { text: 'Assigned', datafield: 'Assigned', width: 80 , columntype: 'checkbox'},
                  { text: 'Pass', datafield: 'pass',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'NC', datafield: 'nc',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'Fail', datafield: 'fail',cellsrenderer: radioRenderer,width: 50, editable: false },
                  { text: 'Re-Cert', datafield: 'recert', columntype: 'checkbox', width: 50, cellvaluechanged: function(event){alert(1);}},
                  { text: 'Re-Cert Reason', datafield: 'reason', width: 100, editable: false},
                  { text: 'Prior Cert', datafield: 'priorcert', width: 50, editable: false }
              ]
    });

APIへのリンクは次のとおりです:http ://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxgrid/jquery-grid-api.htm

編集:このタグは存在せず、1500担当者がいないため、jqWidgetの下でこれにタグを付けることはできません。申し訳ありませんが、これは混乱します。

4

3 に答える 3

2

このプラグインを使用しているときに、これに関して同様の問題が発生しました。

そこで、組み込みのイベントの代わりに、チェックボックスの画像を使用してクリックイベントを要素に割り当て、その画像にイベントを割り当ててみました。

また、cellbegineditまたはcellendeditイベントをバインドしていないことに気づきました。

$("#ModulesGrid").bind('cellbeginedit', function (event) {
     var args = event.args;
  alert("Column: " + args.datafield + ",
           Row: " + (1 + args.rowindex) + ", Value: " + args.value);
});

そして、定義からイベントを削除し、上記のようにバインドします

{ text: 'Re-Cert', datafield: 'recert', columntype: 'checkbox', width: 50 },

アップデート

その場合は、その特定の列のcellsrendererメソッドを処理できます。

var columncheckboxRenderer = function(row, column, value) {
    var html;
        html = '<span style="margin:4px;float:left" onclick="clickImage(this,'
                + row + ')"><img alt="selectme" class="image-unchecked" '  
                +  src="../../Images/checkbox_off.png"/></span>';

    return html;
}

{ text: 'Re-Cert', datafield: 'recert',  width: 50,
          cellsrenderer: columncheckboxRenderer, renderer: header},

次に、チェックボックスのを書き留めclick eventます...これで作業が完了します..これは、要件のロジックを処理する方法です。

于 2012-12-10T23:50:11.023 に答える
0

このサンプルでは、​​「cellendedit」イベント:チェックボックスの選択を使用しています。チェックボックスの値が変更されると、「cellendedit」が発生します。

于 2012-12-11T06:24:58.513 に答える
0

私が見つけることができたこれを行う最もクリーンな方法は、「c​​ellvaluechanged」を接続することです。これにより、セル値の変化がキャプチャされます。次に、イベントargsは、列名、古い値、新しい値などを通知します。テーブルの一意のキーなど、行から一意の識別子を取得するには、おそらく行を追跡する必要があります。

    $("#grid").on("cellvaluechanged", function (event) {
        var theKey = $("#grid").jqxGrid("getcellvalue", event.args.rowindex, "key");
        doSomething(theKey, event.args.newvalue);
    });
于 2014-08-27T20:56:19.910 に答える