2012-10-19 39 views
0

一般來說,我們將其稱爲jqgrid,如$("#grid_loc").jqGrid({});
但我想指定上下文,如$("#grid_loc",context).jqGrid({})
但這不起作用。有人可以幫忙嗎?
我必須使用url選項加載服務器端數據。
Infact我發生這種情況,因爲我在我的頁面上有標籤。 在每個選項卡中,我必須有一個jqgrid,而不是不同的網格,但具有不同數據的相同網格。 這裏我得到使用

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

而 電網代碼的標籤上下文
如何使用上下文加載選擇器中的jqgrid

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


我一直在試圖找出一種方法來做到這一點。你可以在鏈接的評論部分找到我的一些努力 how to develop same jqgrid in multiple tabs


我成功與id覆蓋出於同樣的目的。但那不是一個好方法。所以我不得不採取另一種方法,即。上下文

+0

@ Oleg如果你有時間可以請你幫忙嗎? – venugopal

+0

@tpeczek編輯了這個問題。請讓我知道,如果有任何數據需要從我身邊幫助我。 – venugopal

+0

以及這些標籤/ div內的表格元素是怎樣的(你需要有實際的表格元素來構建jqGrid) - 我沒有看到你在代碼中添加這些元素(將上下文放到選擇器中不會產生元素移動到父對象中)。 – tpeczek

回答

0

我想你誤解了一些對應於id屬性的重要事情。 最重要的是id屬性頁面上的所有元素必須具有唯一屬性值。換句話說,ID必須在整個HTML頁面上是唯一的。

因此,如果您需要在樹形選項卡內創建樹形網格,則必須爲每個網格定義不同的 id屬性。例如; grid_workflow1grid_workflow2grid_workflow3。如果您動態創建選項卡和網格,則可以在外部範圍中包含一些變量(例如全局變量)並增加變量的值。您可以使用某些前綴(如"grid_workflow")和變量的值構造網格的id。您可以使用唯一的ID創建多個網格。許多JavaScript庫使用這種方式來生成獨特的id屬性。我想你可以使用$.jgrid.randId()方法,它會返回你可以用作id的唯一字符串。

由於語法$("#grid_workflow", newmenudivid)你應該理解一件重要的事情。我會建議永遠不要使用它。原因很簡單。它只有在你有重複的id時纔有幫助。在所有其他情況下,如果將工作完全像$("#grid_workflow")緩慢。原因很容易理解。如果頁面上的所有ID都是Web瀏覽器,並且如果直接使用getElementById方法(在$("#grid_workflow")中),則搜索具有所需ID的元素將類似於在數據庫的索引中搜索。所以你會有最好的表現結果。如果您使用$("#grid_workflow", newmenudivid),那麼您不允許網絡瀏覽器通過ID使用元素索引。所以上下文的用法會跟着慢搜索拋出newmenudivid的所有子元素。所以你應該避免使用帶id選擇器的jQuery上下文。

+0

非常感謝你用這樣一種描述性和可理解的方式來解釋,即使對於像我這樣的新手來說也是如此。當我開始學習關於jqgrid的演示時,我認爲我欠你一杯啤酒。再一次感謝你。 – venugopal

+0

@venugopal:不客氣!我離你很遠。所以,如果你把啤酒喝到我的井而不是我,那就夠了。 :-)儘管如此,我卻很空虛地聽到我可以幫助你。順便說一下,如果問題解決了,你可以[「接受」](http://meta.stackexchange.com/a/5235/147495)答案。 – Oleg

相關問題