3

Dgrid ondemandgrid でセレクターと選択ミックスインを使用しています。チェックボックスをセレクターとして使用しています。以下は私の質問です。

  1. HTML ボタンのクリック時に JavaScript でチェックされた行のリストを取得する方法は?dgrid-select および deselect イベントがあることは知っていますが、ボタン クリック イベントで選択されたすべての行のリストが必要です。
  2. 現在、任意の位置で行をクリックすると、チェックボックスが選択されます。しかし、チェックボックスをクリックしたときにのみ行を選択したいです。これを達成するにはどうすればよいですか?

これが私のコードです

             require([
        "dgrid/OnDemandGrid",
        "dojo/store/JsonRest",
        "dojo/dom",
        "dojo/dom-style",
        "dojo/_base/declare",
        "dgrid/extensions/ColumnResizer",
        "dgrid/Selection", 
        "dgrid/selector"
    ], function (OnDemandGrid,JsonRest,dom,domStyle,declare,ColumnResizer,Selection, selector) {
            var Layout = [
                 selector({ label: selector({}), selectorType: "checkbox" }),
                 {field: 'srno',label: 'Sr No'},
                 {field: "Name",label: "name"}
            ];
            jsonstore = new JsonRest({target: url,idProperty: "srno"});
            grid = new(declare([OnDemandGrid,ColumnResizer,Selection]))({
                store: jsonstore,
                columns: Layout,
                minRowsPerPage : 40,
                maxRowsPerPage : 40,
                keepScrollPosition : true,
                allowSelectAll: true,
                loadingMessage: "Loading data...",
                noDataMessage: "No results found."
            }, "grid");
            domStyle.set(dom.byId("grid"),"height","210px");                
            grid.startup();
            grid.on("dgrid-select", function(event){
                    //
            });
            grid.on("dgrid-deselect", function(event){
                    //
            });

        });
4

4 に答える 4

1

このハンドラで選択した行を取得できます。selectedRows変数は 、グリッドで選択されたアイテムを提供します

   window.grid = new (declare([Grid, ColumnResizer, Selection]))({
                store: jsonstore,
                columns: Layout,
                minRowsPerPage: 40,
                maxRowsPerPage: 40,
                keepScrollPosition: true,
                allowSelectAll: true,
                loadingMessage: "Loading data...",
                noDataMessage: "No results found."
            }, "grid");

            window.grid.on("dgrid-select", function (event) {


                var selectedRows = event.rows;

            });
于 2015-12-27T08:17:25.340 に答える