1

列テンプレートで KendoUI Grid を使用すると、次の問題が発生します。

行のデータは次のようになります(簡略化):

{ Name: 'name', Statuses: [ {Name: 'StatusA', Value: 'ValueA'} , {Name:'StatusB', Value: 'ValueB'}] }

したがって、各行データには、ステータスの名前と値のコレクションのリストがあります。StatusA、StatusBなど、ステータス名で名前が付けられたいくつかの列(ステータスごとに1つ)があります。

列テンプレートでは、列名に応じてステータスの値を入れたいと考えています。テンプレートの data.Statuses にアクセスしてステータス値を取得できますが、テンプレートはレンダリングされている列を認識しません。

テンプレートの列名にアクセスしたり、パラメーターとして送信したりする方法はありますか?

どんな助けでも大歓迎です!

4

2 に答える 2

5

次のように、テンプレートに JavaScript 関数を含めることができます。

{title:"StatusA", field:"Status1", template: "#= formatStatus(data.Statuses[0]) #" },
{title:"StatusB", field:"Status2", template: "#= formatStatus(data.Statuses[1]) #"}

これを発見するのに役立った記事は次のとおりです。

http://www.kendoui.c​​om/forums/ui/grid/grid-cell-template-for-image-with-javascript-selector.aspx

于 2012-10-19T02:52:40.473 に答える
0

残念ながら、できません。私はこれを何週間も断続的に探していました。私はついに賢くなり、テンプレートの実行内で JS で console.log( this ) を実行し、テンプレート関数の署名を確認できました。唯一のパラメーターは「data」で、行のデータ モデル全体が含まれます。

Telerik の提案は、行テンプレートを作成することです。つまり、列の非表示または並べ替えを許可する場合、行テンプレートでそれらを処理するのはユーザーの責任になりますが、列テンプレートはそのようなことに関与する必要はありません。代替行スタイルが必要な場合は、代替行テンプレート (クラス/スタイルのみが異なる場合があります) も提供する必要があります。ここでも、列テンプレートは気にする必要はありません。

IMHO、これは Telerik 側の見落としです。

于 2013-08-06T16:41:13.030 に答える