2011-04-12 86 views
0

是否可以在固定位置設置一行?例如,我們現在有一個總排,我們總是希望總排在最後,排序等。jqGrid:固定行

有沒有插件呢?

我們試圖通過重繪整個表像這樣做到這一點的的onLoadComplete:

var rowIDs = $(this).getDataIDs(); 
var rowID, columnID; 
$(this).clearGridData(); 
for (rowID in rowIDs) { 
    for (columnID in data.rows[rowID]) { 
    $(this).addRowData(rowIDs[rowID], data.rows[rowID], (data.rows[rowID][columnID].first ? 'first' : null)); 
    break; // Only do this for the first column 
    } 
} 

但是這是不好的表現,我們有幾千行。

後奧列格的評論:

總排就是從我們的數據集的行。該數據集的格式如下:

列:「網絡」,「點擊次數」,「意見」

data = [ 
    { 
    'Network': {value:'Google'}, 'Clicks': {value:38392882}, 'Views':{value:3939922} 
    }, 
    { 
    'Network': {value:'Sanoma'}, 'Clicks': {value:177883}, 'Views':{value:39293} 
    }, 
    ... 
    , 
    { 
    'Network': {value:'Total'}, 'Clicks': {value:993832732223}, 'Views':{value:3932293939}, 'first': true 
    }, 
    ... 

] 
} 

所以我們在數據行,我們希望有頂部(「第一」這行設置:真)。

通過處理,我們使用它來設置表格的頂部。希望這是更容易理解:)

由於提前,

埃迪

+0

我忘了提及'addRowData'對每一行網格的使用真的很慢。我不明白你的問題爲什麼你需要這樣做。你可以提出新的問題,你發佈更多的代碼並準確解釋**爲什麼**你需要這個。你是否收到來自服務器的數據作爲JSON數據?爲什麼jqGrid無法直接填充數據?我相信,人們可以找到更有效的方法來填補電網。 – Oleg 2011-04-12 16:02:50

+0

@oleg:是的,我們注意到addRowData非常慢,這就是爲什麼我們需要另一種解決方案。我接受了你的建議並編輯了這個問題。謝謝。 – eddy147 2011-04-13 09:22:53

+0

對我而言,不清楚的是**如何將數據集中的數據發送給客戶端?在填充jqGrid之前,你做了一個ajax調用嗎?爲什麼你把數據放在像'Network'這樣奇怪的形式:{value:'Google'}'而不是'Network:'Google''?爲什麼你將'first:true'設置爲數據的一部分?你有更多的一個項目有'first:true'嗎?一般來說,您可以輕鬆創建具有對應數據結構的'gridview:true'和[localReader](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#array_data)的jqGrid,並且使用jqGrid的'data'參數。 – Oleg 2011-04-13 09:38:34

回答

5

頁腳放置在與類「UI-的jqGrid-SDIV」 div和它通常放置在div下方主網格包含的類「ui-jqgrid-bdiv」被放置。因此,要將頁腳移動到頁面頂部,您需要移動頁腳div。另外,您應該將底部邊框放置在您需要的樣式中。該代碼可能是這樣的:

$('div.ui-jqgrid-sdiv').css({ 
    "border-bottom-style":"solid", 
    "border-bottom-color":"#a6c9e2", 
    "border-bottom-width":"2px" 
}).insertBefore($('div.ui-jqgrid-bdiv')); 

的結果,您將收到 enter image description here

觀看演示現場here

+0

不錯的選擇。我們有數據作爲對象,總數只是我們數據集的一行,它們必須經過很多格式化程序,所以我不確定我是否可以做同樣的事情,但我會嘗試。感謝您的不錯選擇。 – eddy147 2011-04-13 08:15:42

+0

@ eddy147:不客氣!正如我之前寫的,我在代碼中看到很多優化潛力。你只需要解釋一下爲什麼你需要在循環中用'addRowData'添加行。如果你在服務器上有數據集,你可以用服務器的JSON響應來填充'userdata',並在jqGrid中使用'userDataOnFooter:true',這將把'userdata'中的數據放在網格中。 – Oleg 2011-04-13 09:14:43