2013-11-22 42 views
1

我有一個3 jQuery的選項卡,其中載入相同的jqgrid結構與不同的數據。 我在jqgrid中有一個過濾器工具欄。這些字段中的幾個是日期字段,所以我有一個日期選擇器供用戶選擇過濾日期。我們可以操縱jqgrid分配的id嗎?

日期選取器在第一個選項卡中的網格中正常工作,但在其他選項卡中中斷。所選日期未填充到搜索字段中。

這是怎樣的標籤和網格的樣子: enter image description here

這裏在Pending選項卡中,日期選擇器工作正常。但在「已批准」和「其他步驟」選項卡中打開

我注意到jqgrid爲日期搜索字段分配的id對於所有三個選項卡中的網格都是相同的。是否有可能當我點擊第二個選項卡和網格時,由於第一個選項卡的網格位於DOM中,因此打破了日期選取器?有任何想法嗎?

更新:

{ name: 'vpReportDate', index: 'vpReportDate',datefmt:"m/d/Y", sorttype:"date", width: 65, searchoptions:{dataInit:showDatePicker}, sortable:true }, 
+0

的jqGrid實際上分配ID的日期選擇字段?哇,我本來以爲它會使用一個類 – jammykam

+0

你的VP報告列在你所有的三個網格中有相同的索引/名稱(來自colModel)嗎? – FastTrack

+0

@FastTrack是..我已經用相應的代碼更新了這個問題。 – tarares

回答

1

我也使用的jqGrid與jQuery UI選項卡,我已經學到了艱辛的道路,每個網格(因爲它都可以在同一時間內DOM)將需要不同的列名稱/索引。

您可以通過執行改變搜索領域的ID

$("#tabs-tabID #gs_vpReportDate").attr("id", "#gs_vpReportDate_2"); 

更改#tabs-tabID你的jQuery UI的標籤的ID。

但是,這會打破搜索功能,因爲您正在更改jQGrid的默認設置。

這裏真正的問題不是日期選擇器的ID,但所有搜索字段的ID將在每個網格上相同(因爲colModel中的名稱/索引在每個選項卡中都是相同的)。

雖然您可能不喜歡聽到這種情況,但最安全的做法是在將來爲您節省很多頭痛,這是爲每個網格更改每列的名稱/索引。由於這些網格將同時駐留在DOM中,因此您不能在colModel中重複名稱/索引,否則這種情況將繼續困擾着您。

我會怎麼做,(在我自己的工作已經做)只是在前面加上東西每個前面的每列 - 在你colModel不只是日期列。像這樣:

待定網格:

name: 'pending_vpReportDate', index: 'vpReportDate' 

批准電網:

name: 'approved_vpReportDate', index: 'vpReportDate' 

附加步驟網格:

name: 'additional_vpReportDate', index: 'vpReportDate' 
+1

我完全同意你對這個問題的根本原因。但是,正如你所建議的,通過在列和索引名稱前添加一些內容來爲列指定不同的名稱,在從服務器檢索數據時它將如何工作。它尋找具有該colnames的getter方法嗎? – tarares

+0

@tarares我完全同意!所以這就是你所做的 - 只是改變'name'而不是'index'。 'index'是什麼傳遞給服務器 - 名稱是爲您的輸入ID等這樣的...我只是更新了我的答案 – FastTrack

+0

它沒有工作..當我更改名稱:'vpReportDate'爲名稱:' pending_vpReportDate',沒有數據顯示在列中.. :(..而在響應體中,我可以看到數據對這個列...看起來像它匹配的名稱。 – tarares

相關問題