2016-09-22 7 views
0

剣道を使用するのは非常に新しく、MVCグリッドを使いこなしています。私はサーバー側のページングとソートのためのajaxデータソースを持つグリッドを定義しました。 ajax呼び出しが返すオブジェクトには、IEnumerableというプロパティがあります。グリッドの階層機能を使用して、このコレクションを各行の子グリッドとして表示したいと考えています。私は、階層グリッドに関する多くのブログとTelerikのドキュメントを読んでいます。私が見つけたすべての例では、子グリッドのクライアントテンプレートが定義されています。クライアントテンプレートは、データを取得するために別のajax呼び出しを行うグリッドです。親グリッドのモデルで必要なすべてのデータを既に取得しているので、子グリッドを別に呼び出す必要はありません。私がやろうとしていることを達成できる方法はありますか?剣道MVCグリッド階層 - 親Ienumerableプロパティから生成された子グリッド

答えて

0

説明したシナリオは次のように実装できます。

  • マスターデータ項目は、プレーンなオブジェクトの配列である値を持つフィールドを持つ必要があります - あなたが言うことに基づいて、あなたはすでにそれを持っている必要があります。
  • マスターグリッド構成では、定義済みの列、Ajaxデータソースおよびモデルタイプを持つが、特定のデータにバインドされていない(つまり、Read()アクションはない)子グリッドを持つclient detail templateを定義する必要があります。
  • マスタグリッドの detailInit場合に
  • 、マスタデータ項目(e.data)からget()ネストされた配列、および詳細グリッドのdataSourceインスタンスにdata()を介してそれを割り当てます。

http://dojo.telerik.com/iLAza

あなたは上記の例ではtoJSON()の使用に気付くことがあります。その目的は、すべてのKendo-UI固有のObservableObject要素のネストされたフィーチャー配列を取り除き、プレーンオブジェクトの通常のJavaScript配列に変換することです。このステップはオプションですが、詳細グリッドのデータをマスターグリッドのデータと切り離したい場合には必要です。

+0

ありがとうございました。これはうまくいった。ちょうど興味深いのは、そのjavascript関数なしで子グリッドのデータソースを設定する方法はありますか?これまでグリッドで行ってきたことはすべて、Razorで流暢なAPIを使っていました。このJavaScriptを解決する方法があるのだろうかと思います。再度、感謝します。 – wakers01

+1

詳細グリッドにJavaScriptを使用するフルテキストAPIには、詳細グリッドのデータとマスターデータ項目との関係を宣言的に定義する手段がないため、シナリオではグリッドが必要です。 – dimodi

+1

私はあなたの助けに感謝します。 – wakers01

関連する問題