4

页面上是否可以有多个 Kendo UI 网格?编辑:网格必须同时可见。

对于我过去尝试过的一些 jQuery 网格,页面上不可能有多个网格实例,因为网格分配给其子 DOM 元素的 ID 没有以网格 ID 为前缀;页面上有多个网格会创建两个或多个具有相同 ID 的 DOM 元素。

4

2 回答 2

4

是的,我已经在我的项目中实现了这个,没有你提到的问题。我在一页中有 3 个网格。

更新:基本小部件元素具有您自己分配的任何 ID。至于子元素,它们不使用 ID,而是使用数据属性。我还没有在我拥有的整个网格中看到一个 ID。这是一个表格标题在我的一个网格中的外观示例:

<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

哦耶!我们的页面实际上有数百个。

但更准确地说,我们按需加载其中的大部分。首先看一下 Kendo TabControl,这真的很容易。

这是通过具有动态分配名称的部分加载它们的许多方法中的“一种”。我们甚至有一个使用 GUID 的案例。

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

如果您允许编辑。如果您尝试在多个具有相同类型数据的网格中同时进行编辑,则会发生冲突。在此示例中,如果您尝试同时在不同的网格中编辑两个限定条件,则会导致问题。

编辑:

如果您知道您将拥有 N 个具有相同数据类型的网格,您可以创建 N 个模型并唯一地命名它们的属性,并在每个网格上使用每个不同的模型。这将在一定程度上解决您的碰撞问题。这甚至可能不是您要问的。

于 2012-12-14T16:20:12.713 回答