2015-10-07 43 views
0

我有以下代碼在jsp中使用標籤,這似乎很直截了當。然而,由於某種奇怪的原因,我使用的那種方式根本不起作用,並且導致我的各種頭痛。JSP表格排序不工作

的JSP代碼表: - 從得到的對象形式顯示對象名

<display:table name="searchResult.FormList" class="display" id="forms" keepStatus="true" 
export="true" pagesize="500" sort="list" defaultSort="2" defaultOrder="ascending" 
requestURI="searchResult.htm?paging=true"> 

<display:column title="Select"><input type="checkbox" name="selForm" value="${forms.objectId}"/>"/></display:column> 

<display:column title="Form Name" sortable="true" headerClass="sortable"><a href="javascript:onclick= 
downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}'/></a> 
<c:out value="${forms.objectName}"/></display:column> 

現在,給出的表和列,我希望表格中的結果由第二列進行排序。然而,這種情況並非如此。不知何故排序完全不起作用。默認排序是隨意的(A,D,E,B,C而不是A,B,C,D,E),當我們嘗試從列中手動排序時,排序不再正確。 forms.objectName總是有字母表。

我嘗試了幾件事情。其中之一是(第二列,其他一切相同):

<display:column property="objectName" title="Form Name" sortable="true" headerClass="sortable"/> 

當我這樣做,表填充,和不奇怪的是,該表由該第二列(A,B完全排序,C,D,E如預期)。然而,問題在於這些沒有超鏈接,因此我不能使用它。

我嘗試的另一件事是,與第二列:

<display:column property="objectName" title="Form Name" sortable="true" headerClass="sortable" href="javascript:onclick= 
downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}')"/> 

同樣,這通過該第二列完全排序表(A,B,C,d,E)。但是,downloadForm方法的參數來自表格的最後一行,例如,如果搜索表格中有10行,則第二列鏈接將從所有行的最後一行獲取forms.objectId & forms.objectName 10排。因此,我不能使用它。

我希望我的問題對你很清楚。任何幫助真的很感激。如果您需要進一步解釋,請告訴我。謝謝。

+0

我發現了一件事。在上面第一組代碼中(排序錯誤),系統按照href中的form.objectId進行排序。爲什麼會發生?爲什麼不是通過form.objectName來排序呢? –

回答

0

可以與嘗試:

<display:column title="Form Name" sortable="true" headerClass="sortable" sortName="objectName"> 
    <a href="javascript:onclick=downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}'/></a> 
    <c:out value="${forms.objectName}"/> 
<display:column> 

完全一樣粘貼在第一個代碼,但增加的屬性sortName="objectName"display:column

+0

可悲的是,它沒有奏效。仍在尋求幫助.... –

0

首先,你需要指定sortProperty作爲displayTag不能奇蹟般地工作了您希望對「名稱」屬性進行排序。

從標籤庫參考文檔:

sortProperty:(通過「名」屬性)將被用於 值排序在父表標籤中指定的bean的屬性名稱在列中。 這可以在填充柱體時使用 或者使用裝飾器並且列應該在未修飾值上排序。

<display:column title="Form Name" sortable="true" headerClass="sortable" sortProperty="name" />