1

Kendo UI を使用しているという点で、Web アプリ プロジェクトを開発しています。最初の列のタイトル/見出しを、ドロップダウンから選択したものとして作成することは可能ですか? 例:- シリアル番号が検索される場合、シリアル番号は検索の最初の列にある必要があります。しかし、ソートされた方法で一般的に列定義を定義したため、それを取得できません。選択に応じて、残りの列を非表示にします。例えば:

xxx.GridColDef = [ {
    field : "serialNo",
    title : "Serial No",

}, {
    field : "firstname",
    title : "firstname",
    }, {
    field : "lastnameo",
    title : "lastname",
    }, 

ドロップダウンから名を選択した場合、名は最初の列にある必要があります。しかし、シリアル番号として最初の列を取得しています方法はありますか? それぞれに個別の列定義を追加する必要はありません。

剣道編 - 2012.1.322

これは、手動ではなく列の並べ替えを使用せずに自動的に行う必要があります


よくわからない場合は申し訳ありません。私が欲しいのは

ドロップダウンで私が持っている

シリアル番号 名 姓 生年月日

最初は、グリッドは次のようになります

シリアル番号 名 姓 生年月日

ユーザーがドロップダウンから「名」を選択すると、次のようになります

名 通し番号 姓 生年月日

お役に立てれば。さらに説明が必要な場合はお知らせください。これに対する解決策を提供していただきありがとうございます。

もう一つ: -

「Fiddle using your current version of Kendo 2012.1.322」 このフィドルでは、ドロップダウンから選択できません。

4

1 に答える 1

1

更新された回答 2

現在の KendoUI グリッド フレームワークは、コードで列を切り替える機能をサポートしていません。すべてのスイッチケースで列を完全に並べ替える必要がない新しいフィドルを作成しました。列定義をループし、ドロップダウン値がそこにある場合は、配列から削除して最初の位置に配置します。50 列と 8 つのドロップダウンがどのように相互作用するのかわかりませんので、完全に正確な答えを出すのは難しいです。しかし、ここでの複数の提案の間で、解決策にたどり着けることを願っています:)

元の列定義が元の状態のまま使用できるように、新しい tempColumn 定義変数を作成しました。

function onSelect(e) {
    var ddlVal = this.dataItem(e.item.index()).value;
    var tempColumns = columnDefinitions;

    $(tempColumns).each(function(index) {
        if (ddlVal == this.title) {
            tempColumns.splice(index, 1);
            tempColumns.splice(0, 0, this);
        }
    });

    createGrid(tempColumns);

}

スパイスを使用して列を並べ替える新しいフィドル

更新された回答

現在のバージョンの剣道で新しいフィドルを作成しました。剣道フレームワーク内でこれを行う方法はないと思うので、バージョンを更新する必要はありません。

この解決策では、ドロップダウンから選択してグリッドを再作成するときに、列の定義を再定義する必要があります。

現在のバージョンの剣道で更新されたフィドル

*何らかの理由で、Internet Explorer は jsfiddle でうまく動作しない場合があります。この例は、Firefox と Chrome では機能しますが、IE では機能しません。別のブラウザーを試して動作を確認できない場合は、コードをソリューションにプラグインしてテストしてください。

元の回答

私は2つの異なるソリューションを提供しました。

1) KendoUI のバージョンを更新することはできますか? 可能であれば、.showColumn() および .hideColumn() メソッドを利用できます。

以下は、KendoUI 2012.2.710 を使用したフィドルです。ドロップダウンの選択イベントでは、適切な列を表示/非表示にするだけです。本当に簡単で簡単です。

剣道を使ったフィドル 2012.2.710

2) KendoUI のバージョンを更新できない場合は、columnDefinition 配列を変更してから、グリッドを再作成できます。

ドロップダウン リストの onSelect メソッドで、最初の列を columnDefinition 配列から削除し、新しい列オブジェクトを配列に追加します。その後、グリッドの div 要素のコンテンツを削除してから、グリッドを再作成します。

同じデータにバインドしているため、データを再度取得するために回線をまたぐ必要はありません。

Kendo 2012.1.322 の現在のバージョンを使用してフィドルします。

~ どちらの場合も、ニーズに合わせてコードをクリーンアップすることは間違いありませんが、動作する基本機能を提供したかっただけです。お役に立てれば!

于 2012-10-16T22:43:55.000 に答える