I'm implementing custom pagination in S2 with ajax submission. It's working fine. But one issue is there. The navigation is not working (enable and disable arrows) properly. Remaining everything will went fine means based on page size i can get records, sorting is working and while I clicks on arrows pagination is also working.
Only res.jsp response is coming as response every time througth ajax call while I clicks on arrows (I'm written code like that only). In index.jsp I included pagination.jsp file but in res.jsp it's not included. So the code which I written in pagination.JSP is not refreshed. previous values will appear every time. How to I change this. If you want any other code I'll paste here. Some of the code is here.
In index.jsp
<s:iterator value="#attr.users" var="user" status="rowstatus">
<s:if test="#rowstatus.even == true">
<tr class="ac_odd">
</s:if>
<s:else>
<tr>
</s:else>
<td><s:property value="id" /></td>
<td><s:property value="name" /></td>
<td><s:property value="role" /></td>
</tr>
</s:iterator>
</table>
</div>
<%@ include file="pagination.jsp" %>
<s:hidden name="pagenumber" id="pagenumber" value="%{#request.pagination.page_number}"/>
<s:form method="post" action="downloadXLSFileAction">
<s:hidden name="query" value="%{#request.pagination.query}"/>
<s:submit value="Download" />
</s:form>
In struts.xml
<action name="user-list" method="userPagination" class="com.pagination.UserAction">
<interceptor-ref name="defaultStack"/>
<result name="success">index.jsp</result>
</action>
<action name="ulist" method="iPagination" class="com.pagination.UserAction">
<result>res.jsp</result>
</action>
In pagination.jsp (to enable and diable arrows)
<td>
<s:if test="%{#request.pagination.page_number>1}">
<a href="#" onclick="fnPagination(4,<s:property value='#request.pagination.total_pages'/>);">
<img src="imgs/left_end.gif" alt="Go to first page" width="15" height="19"/>
</a>
</s:if>
<s:else>
<img src="imgs/left_end_gray.gif" alt="Go to first page" width="15" height="19"/>
</s:else>
</td>
...................................
<td>
<input name="pagination.page_number" id="page_number" class="pagination-textbox" <s:if test="%{(#request.pagination.page_number<1)&&(#request.pagination.total_pages==#request.pagination.page_number)}"> readonly="readonly" </s:if>
style="width: 20px;" maxlen="1" value="<s:property value='#request.pagination.page_number'/>" type="text" onclick="fnPagination(7,<s:property value='#request.pagination.total_pages'/>);"/></td>
............................
<td class="pagination-linkoff" style="" nowrap="nowrap">
<s:select onchange="fnPagination(5,0);" list="#{'5':'5','10':'10','50':'50','100':'100','0':'All'}" theme="simple" name="pagination.page_size" id="page_size" value="#request.pagination.page_size"/>
</td>
In js file
function fnPagination(type,param){//alert("aa");
var oPage_number = document.getElementById("page_number");
var page_number = parseInt(oPage_number.value);
switch (type)
{
case
1://Next
oPage_number.value = (page_number+1);
break;
..........
document.getElementById("result").innerHTML = "";
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("result").innerHTML = xmlhttp.responseText;
}
}
if(type==6)
xmlhttp.open("GET","ulist.action?pagesize="+document.getElementById("page_size").value+"&pagenumber="+document.getElementById("page_number").value+"&sortColumn="+document.getElementById("sortColumn").value+"&sortOrder="+document.getElementById("sortOrder").value,true);
else
xmlhttp.open("GET","ulist.action?pagesize="+document.getElementById("page_size").value+"&pagenumber="+document.getElementById("page_number").value+"&sortColumn="+document.getElementById("sortColumn").value+"&sortOrder="+document.getElementById("sortOrder").value,true);
xmlhttp.send();
In res.jsp
<s:iterator value="#attr.users" var="user" status="rowstatus">
<s:if test="#rowstatus.even == true">
<tr class="ac_odd">
</s:if>
<s:else>
<tr>
</s:else>
<td><s:property value="id" /></td>
<td><s:property value="name" /></td>
<td><s:property value="role" /></td>
</tr>
</s:iterator>
<s:hidden name="pagenumber" id="pagenumber" value="%{#request.pagination.page_number}"/>
<s:form method="post" action="downloadXLSFileAction">
<s:hidden name="query" value="%{#request.pagination.query}"/>
<s:submit value="Download" />
</s:form>