0

一般来说,我们将 jqgrid 称为 in$("#grid_loc").jqGrid({});
但我想指定上下文,如$("#grid_loc",context).jqGrid({}).
但这不起作用。有人可以帮忙吗?
我必须使用url选项加载服务器端数据。
事实上,我碰巧有这个,因为我的页面上有标签。在每个选项卡中,我必须有一个 jqgrid,不是不同的网格,而是具有不同数据的相同网格。在这里,我使用

var tabset = $("div.tabset"); newdivid = $("div[class*='active_tab']",tabset).attr("id"); var newmenudivid = $("#"+newdivid);

网格代码 获取选项卡上下文

$("#grid_workflow", newmenudivid).jqGrid({....});


我一直在试图找到一种方法来做到这一点。您可以在链接的评论部分找到我的一些努力 如何在多个选项卡中开发相同的 jqgrid


为了同样的目的,我成功地覆盖了 id。但这不是一个好方法。所以我被迫采用另一种方法,即。语境

4

1 回答 1

1

我想你误解了一些与id属性相对应的重要事情。最重要的是页面上所有具有属性的元素都必须具有唯一的属性值id。换句话说,id 在整个 HTML 页面中必须是唯一的。

因此,如果您需要在树选项卡内创建例如树网格,则必须为每个网格定义不同的 id 属性。例如; grid_workflow1, grid_workflow2, grid_workflow3. 如果您动态创建选项卡和网格,那么您可以在外部范围内拥有一些变量(例如全局变量)并增加变量的值。"grid_workflow"您可以使用一些前缀(如)和变量的值来构造网格的 id 。您可以通过这种方式创建多个具有唯一 ID 的网格。许多 JavaScript 库使用这种方式来生成唯一id属性。Ij 您希望您可以使用$.jgrid.randId()该方法将返回您可以用作 id 的唯一字符串。

由于语法$("#grid_workflow", newmenudivid),您应该了解一件重要的事情。我建议永远不要使用它。原因很简单。仅当您有 id 重复项时才会有所帮助。在所有其他情况下 if will 完全一样$("#grid_workflow")缓慢。原因很容易理解。如果页面上的所有 id 都在 Web 浏览器内部保存,并且如果您直接或间接(in )使用getElementById$("#grid_workflow")方法,则搜索具有所需 id 的元素就像在数据库中的索引中搜索一样。因此,您将获得最佳性能结果。如果你使用$("#grid_workflow", newmenudivid),那么你不允许网络浏览器通过 id 使用元素的索引。因此上下文的使用将遵循缓慢搜索抛出所有子元素newmenudivid. 所以你应该避免使用带有 id 选择器的 jQuery 上下文。

于 2012-10-19T10:55:39.940 回答