2016-10-24 42 views
0

在我的工作中,我們有一些非常老的帶有數據的表格,我們正試圖將它們轉換爲jqGrid。不幸的是,並不是所有的表都可以在jqGrid中重新創建,所以我們使用tableToGrid來轉換jqGrid中的數據表,並且至少具有排序和CSS樣式等功能。 但是我們發現我們的表中有一個問題:這個表在某些情況下使用嵌套表顯示信息,在這種情況下,tableToGrid會崩潰,因爲他無法檢測到內部表的td不屬於外部表,所以他添加到外部表。結果?一團糟。 所以,我的問題是:考慮到限制(不能使用SubGrid,例如,因爲日期已經顯示在html上),你們中的任何人都知道一種告訴tableToGrid忽略「內部」表的方法嗎?我認爲這裏的關鍵是找到一種方法來調用tableToGrid的外部和內部表,而不需要干預一個調用到另一個調用。如何讓jQGrid忽略內部表格

問候

回答

0

既然你說

的方式來告訴tableToGrid到忽略「內部」表

你似乎不感興趣,以保持和使用它們的內容(在至少在變換操作期間)。

所以,你可能只是變換操作之前插入此

$('table table').remove(); 

顯然,你可能不得不寫的東西比table table更精確,這取決於整個來龍去脈。

0

你的問題的主要原因是使用tableToGrid,這是jqGrid多年前創建的插件,幾乎沒有改變或維護。例如,該插件在循環中使用addRowData(請參閱the line),該工作非常緩慢。這個問題,你描述的起源是代碼

jQuery('td', jQuery(this)).each(function() { 

可能改爲

jQuery(this).children('td').each(function() { 

例如或者只是

jQuery(this.cells).each(function() { 

the line(見here有關cells收集每<tr>。人們可以使用this.cells[i]來訪問第i個的innerHTML該行的單元格)

tableToGrid的許多代碼部分都是針對網格的特定結構,該複選框允許使用multiselect: true選項將這些網格轉換爲網格。這是你需要的嗎?

tableToGrid的代碼由兩個主要部分組成:第一個從現有的<table>讀取數據並將數據保存在項目數組中。第二部分使用數據創建網格。如果您知道現有表格的結構,那麼您可以通過非常簡單的方式創建替換爲tableToGrid。這是我建議你要做的。