Grid 剑道UI网格:页面上是否可能有多个网格而没有元素ID冲突?

Grid 剑道UI网格:页面上是否可能有多个网格而没有元素ID冲突?,grid,kendo-ui,Grid,Kendo Ui,页面上是否可能有多个剑道UI网格? 编辑:栅格必须同时可见 对于我过去尝试过的一些jQuery网格,一个页面上不可能有多个网格实例,因为网格分配给其子DOM元素的id没有前缀网格id;页面上有多个网格将创建两个或多个具有相同ID的DOM元素。是的,我在我的项目中实现了这一点,没有您提到的任何问题。我在一页中有3个网格 更新:基本小部件元素具有您自己分配给它的任何ID。至于子元素,它们不使用ID,而是使用数据属性。我在整个网格中没有看到一个ID。下面是我的一个网格中表格标题的示例: <the

页面上是否可能有多个剑道UI网格? 编辑:栅格必须同时可见


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

是的,我在我的项目中实现了这一点,没有您提到的任何问题。我在一页中有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>

试验
01:00:00
500
我建议您只需查看上的示例,并检查网格生成的html以了解更多详细信息

我认为您不应该直接通过DOM访问特定的子元素。坚持使用widgetapi是我的建议,这就是它存在的原因


希望这有帮助

哦,是的!我们有数百页的网页

但更准确地说,我们按需加载其中大部分。从剑道控制开始,它让这一切变得非常简单

这是通过动态分配名称的分部加载它们的许多方法之一。我们甚至有一个使用guid的例子

@using Kendo.Mvc.UI
@model PeopleViewModel
@{
    Layout = null;
}
@(Html.Kendo().Grid<PersonQualificationModel>()
    .Name("QualificationEditGrid_" + Model.PersonId)
    .HtmlAttributes(new { style = "clear: both;" })
...
@使用Kendo.Mvc.UI
@模型人物视图模型
@{
布局=空;
}
@(Html.Kendo().Grid())
.Name(“QualificationEditGrid”+Model.PersonId)
.HtmlAttributes(新的{style=“clear:both;”})
...
如果允许编辑。如果同时在多个网格中编辑数据类型相同的网格,则会发生冲突。在本例中,如果同时在不同网格中编辑两个限定条件,则会导致问题

编辑:


如果您知道将有N个具有相同数据类型的网格,则可以创建N个模型并对其属性进行唯一命名,并在每个网格上使用每个不同的模型。这将在一定程度上解决冲突问题。这可能不是您所要求的。

对OP cas中的错误进行更详细的分析e会更有帮助。@Serge Belov:其他网格假设每页只有一个实例,并且没有将网格ID作为其子元素ID的前缀,例如,不是StockGrid-Header1而是Header1(一个假设的示例)。对于页面上的两个网格,两个网格都包含一个“唯一”ID为“Header1”的元素。因此,
getElementById('Header1'))
是不可能的;此外,由于这些同名元素并不总是嵌套在结构中的同一位置,这取决于启用了哪些功能,因此几乎不可能使用其他选择器创建通用函数来处理这些元素。@Dennis Puzak:谢谢你的答复。我很乐意给你答复绿色复选标记,接受你的答案;但在我正式接受它之前,你能描述一下剑道UI ID命名约定吗?我是一个“坚持者”在这里,我需要一个非常具体的答案,只是因为对于那些其他网格,ID冲突错误很微妙;每页多个网格似乎都可以正常工作,我没有立即检测到任何行为异常。
剑道UI ID命名约定是专为防止ID与多个对象实例冲突而设计的吗?
再次感谢。我的应用程序如果我的答案不够具体,请向所有人解释。我不熟悉堆栈溢出,只需拍摄我脑海中首先想到的内容,并考虑到这一点:)我会更新我的答案。@Dennis Puzak:谢谢你的补充评论
,我在。。。网格
。感谢您的帮助。网格需要同时可见,因此选项卡控制和按需加载不是选项。e、 g.(1)前十名股票及其数据;(2) 十大房地产项目;(3) 排名前十的赌场——每个网格都有不同的模式。显然你不明白我在解释什么。我的错。