0

私は kendo ui v.2013.1.514 を使用していますが、グリッド ウィジェットを使用しているときに非常にひどいバグが発生しました。

ご覧のとおり、仮想スクロール オプションを「true」に設定し、ページ サイズを 25 に設定しました。addRow 関数を使用してグリッドに新しい行を追加した後、グリッドを下にスクロールするたびに Web ブラウザーがクラッシュします。仮想化が必要で、グリッドにも新しいレコードを追加する必要があるため、それは本当に悪いことでした。以下にいくつかのテストコードを貼り付けます。これが役立つことを願っています。

ところで、私はあなたのローカルデモ「virtualization-local-data.html」でテストしますが、すべて同じです。コードは、DataSource ウィジェットの「範囲」機能でループを実行しているようです。

<script>
$(function() {
    var arrayDataSource = [];
    for (var i = 0; i < 1000; i++) {
        arrayDataSource.push({ 
            check: true, 
            ip: "10.1.201.3"
        });
    }

    $('#grid').kendoGrid({
        height: 600,
        dataSource: {
            data: arrayDataSource,
            schema: {
                model: {
                    fields: {
                        check: { type: 'boolean' },
                        ip: { type: 'string' }
                    }
                }
            },
            pageSize: 25
        },
        columns: ['check', 'ip'],
        editable: false,
        scrollable: {
            virtual: true
        }
    });

    $('#add').click(function() {
        $('#grid').data('kendoGrid').addRow();
    });
});
</script>
</head>
<body>
    <div id="grid"></div>
    <button id="add">add</button>
</body>
</html>
4

2 に答える 2

0

このフィドルで構築してみてください: http://jsfiddle.net/vojtiik/rDPBu/3/

var grid = $('#grid').kendoGrid({
    height: 300,
    dataSource: {
        data: [
               {check: 1,ip: "10.1.201.3"},
               {check: 2,ip: "10.1.201.3"},
               {check: 3,ip: "10.1.201.3"},
               {check: 4,ip: "10.1.201.3"},
               {check: 5,ip: "10.1.201.3"},
               {check: 6,ip: "10.1.201.3"},
               {check: 7,ip: "10.1.201.3"},
               {check: 8,ip: "10.1.201.3"}
              ],
        schema: {
            model: {
                id: "check",
                ip: "ip"
            }
        }
    },
   columns: [
               { field: "check" },
               { field: "ip" }
              ],
   editable: true,
     scrollable: {
            virtual: true
        }
}).data('kendoGrid');

$('#add').click(function () {
    grid.addRow();
});

編集 :

剣道サポートからの回答:

仮想スクロールが有効になっているグリッドに新しい要素を追加することは、サポートされている設定ではありません。フィードバック フォーラムでいつでも送信できるので、今後のリリースで考慮に入れることができます。

于 2013-07-10T08:41:16.560 に答える