4

ページに複数のKendoUIグリッドを配置することは可能ですか?編集:グリッドは同時に表示される必要があります。

過去に試したいくつかのjQueryグリッドでは、グリッドによって子DOM要素に割り当てられたIDの前にグリッドIDが付いていないため、ページに複数のグリッドインスタンスを含めることはできませんでした。ページに複数のグリッドがあると、同じIDを持つ2つ以上のDOM要素が作成されます。

4

2 に答える 2

4

はい、そうです。私はこれを私のプロジェクトに実装しましたが、あなたが言及した問題はありません。1ページに3つのグリッドがありました。

更新:基本ウィジェット要素には、自分で割り当てたIDがあります。子要素については、IDを使用せず、データ属性を使用します。私が持っているグリッド全体で単一のIDを見たことがありません。これは、私のグリッドの1つでテーブルヘッダーがどのように表示されるかの例です。

<thead class="k-reorderable" data-role="reorderable">
<tr>
<th class="k-header" data-title="Service name" data-field="Name" role="columnheader" data-role="sortable">
<a class="k-link" href="#">Service name</a>
</th>
<th class="k-header" data-title="Lasting time" data-field="LastingTime" role="columnheader" data-role="sortable">
<a class="k-link" href="#">Lasting time</a>
</th>
<th class="k-header" data-title="Price" data-field="Price" role="columnheader" data-role="sortable">
<a class="k-link" href="#">Price</a>
</th>
</tr>
</thead>

データ行はUIDを使用して区別します。これは、別の例です。

<tr class="k-alt" role="row" data-uid="f2cd4f59-8492-4616-8fc6-5d65ec466437">
<td role="gridcell">Test</td>
<td role="gridcell">01:00:00</td>
<td role="gridcell">500</td>
</tr>

http://demos.kendoui.c​​om /の例を確認し、グリッドが生成するhtmlを調べて詳細を確認することをお勧めします。

DOMを介して特定の子要素に直接アクセスする必要はないと思います。ウィジェットAPIに固執することは私が提案することであり、それがその理由です。

お役に立てれば!

于 2012-12-13T22:37:24.330 に答える
1

そうそう!文字通り何百ものページがあります。

しかし、より正確には、それらのほとんどをオンデマンドでロードします。そのために剣道TabControlを見ることから始めて、それはそれを本当に簡単にします。

これは、動的に割り当てられた名前を持つパーシャルを介してそれらをロードする多くの方法の「1つ」です。GUIDを使用するケースも1つあります。

@using Kendo.Mvc.UI
@model PeopleViewModel
@{
    Layout = null;
}
@(Html.Kendo().Grid<PersonQualificationModel>()
    .Name("QualificationEditGrid_" + Model.PersonId)
    .HtmlAttributes(new { style = "clear: both;" })
...

編集を許可する場合。同じタイプのデータがある場合に複数のグリッドで同時に編集しようとすると、衝突が発生します。この例では、異なるグリッドで2つの資格を同時に編集しようとすると、問題が発生します。

編集:

同一のデータ型を持つN個のグリッドがあることがわかっている場合は、N個のモデルを作成し、それらのプロパティに一意の名前を付けて、各グリッドで異なるモデルを使用できます。これにより、衝突の問題がある程度修正されます。これはあなたが求めているものではないかもしれません。

于 2012-12-14T16:20:12.713 に答える