3

グリッドで行を選択しようとしていますが、ドキュメントが見つからないため、データキーの値を設定または取得するのに苦労しています。

$("#divGrid").igGrid({
            columns: [
                { headerText: "@Manage.gridColumnEmployeeNumber", key: "EmployeeNumber" },
            ],
            dataKeyFields: "EmployeeNumber",  //Is this how you set the dataKeys?
            autoGenerateColumns: false,
            dataSource: jsonp,
            features: [
                {
                    name: "Selection",
                    rowSelectionChanging: rowSelectionChanging
                }
            ]
        });
    });

これはまったく機能しません。コードのこのセクションで自分の dataKey (primaryKey) にアクセスするにはどうすればよいですか?

    function rowSelectionChanging(evt, ui) {
        if (confirm) {
            var rows = ui.getSelectedRows();
            var selectedRow = rows.getItem(0);
            var selectedDataKey = selectedRow.get_dataKey();

            alert(selectedDataKey);
        } else {
            return false;
        }
    }
4

2 に答える 2

7

[...] dataKeyFields: "EmployeeNumber"、//これはdataKeysを設定する方法ですか?[...]

十分近い。実際には次のように「primaryKey」です。

[...]
primaryKey: "EmployeeNumber"、
[...]

そして2番目の部分では、それはすぐには明らかではないと思いますが、引数として渡される行は、選択されている実際のDOM TR要素であり、(現在の設定が示唆するように)セルからキーを簡単に選択できます。それで:

var rowKey = $(ui.row.element).children().eq(0).text(); //may need to parse if int

注:eq()メソッドはゼロベースのインデックスを取り、構造の観点から、行の子要素はセルです。この場合、主キー列は最初の(そして唯一の)ため、インデックスは0になります。

プログラムに適していると思うもう1つのアプローチは、データソースからキーを直接取得することです(読みやすく、解析の必要がありません)。

var rowKey = ui.owner.grid.dataSource.dataView()[ui.row.index].EmployeeNumber;

注:「所有者」はイベント(選択)を担当する実際のウィジェットであり、「グリッド」への参照があり、そこからデータソースにアクセスできます。レコードを取得するには、「。data()」または「.dataView()」のいずれかを使用します。後者には、インデックスの基になっている実際の表示行のみが含まれ、追加機能(ページング、並べ替え、フィルタリング)が有効になっている場合に使用する必要があります。 ..)。

選択イベントが提供するものを(下部に)説明しているドキュメントページは次のとおりです-http://help.infragistics.com/NetAdvantage/jQuery/2012.1/CLR4.0?page= igGrid_Selection_Overview.html

そして、ここに完全なAPIリファレンスがあります:http://help.infragistics.com/jQuery/2012.1/ui.iggridselection#events- ここから、任意のグリッド/グリッド機能/データソースAPIを掘り下げることができ、イベントにはすべての便利なサンプルスニペットがありますリストされているパラメーター。

PSユーザーの選択を制御することが目的でない場合は、「rowSelectionChanged」のように「-ed」イベントの使用を検討してください。使用可能なパラメーターは同じです。違いは、「-ing」が選択の途中で起動され、UIがブロックされるため、より重いロジックを追加すると、アプリの応答性が低下する可能性があることです。

于 2012-08-21T11:46:10.220 に答える
0

var rowKey = ui.owner.grid.options.primaryKeyValue; を試してください。

于 2015-08-20T03:33:46.730 に答える