<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>jQuery Grid Plugin - jqGrid - Topic: jqGrid Problem - query repeat always two times</title>
	<link>http://www.trirand.com/blog/?page_id=393/help/jqgrid-problem-query-repeat-always-two-times-1</link>
	<description><![CDATA[Grid plugin]]></description>
	<generator>Simple:Press Version 5.7.5.3</generator>
	<atom:link href="http://www.trirand.com/blog/?page_id=393/help/jqgrid-problem-query-repeat-always-two-times-1/rss" rel="self" type="application/rss+xml" />
        <item>
        	<title>mariusv5 on jqGrid Problem - query repeat always two times</title>
        	<link>http://www.trirand.com/blog/?page_id=393/help/jqgrid-problem-query-repeat-always-two-times-1#p22429</link>
        	<category>Help</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/help/jqgrid-problem-query-repeat-always-two-times-1#p22429</guid>
        	        	<description><![CDATA[<p>I've a problem with a jqGrid.</p>
</p>
<p>I'had built json method for retrieve records from database table. This method is always throws 2 times.</p>
</p>
<p><u>struts.xml</u></p>
<p>&#160; &#60;package name="PLogView" extends="struts-default"&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#60;action name="log" class="appl.LogAction" method="initLog"&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#60;result name="success"&#62;/jsp/logs.jsp&#60;/result&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#60;result name="error"&#62;/jsp/error.jsp&#60;/result&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#60;/action&#62;<br />&#160; &#60;/package&#62;</p>
<p>&#160; &#60;package name="PLogJqgrid" extends="json-default"&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#60;action name="log_jqgrid" class="appl.LogAction" method="getList"&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#60;result name="success" type="json" /&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#60;result name="error" type="json" /&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#60;/action&#62;<br />&#160; &#60;/package&#62;</p>
</p>
<p><u>LogAction.java - method getList()</u></p>
<p>&#160;&#160;&#160; public String getList() {<br />&#160;&#160; &#160;&#160;&#160; &#160;String title = getText("log.title.list");<br />&#160;&#160; &#160;&#160;&#160; &#160;String result = ActionSupport.SUCCESS;<br />&#160;&#160; &#160;&#160;&#160; &#160;SqlSession sqlSession = null;</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;try {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;Map&#60;String, Object&#62; session = ActionContext.getContext().getApplication();<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;sqlSession = ((SqlSessionFactory) session.get("sqlFactory")).openSession(true);</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Count all logs record<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;setRecords((Integer) sqlSession.selectOne("getCountLogs"));</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Calucalate until rows ware selected<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;int to = (getRows() * getPage());<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Set to = max rows<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if (to &#62; getRecords()){<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;to = getRecords();<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;setPage(getTotal());<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Calculate the first row to read<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;int from = to - getRows();<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Set to = max rows<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if (from &#60; 0)<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;from = 0;</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Retrieve logs records<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;HashMap&#60;String, Integer&#62; params = new HashMap&#60;String, Integer&#62;();<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;params.put("from", from);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;params.put("to", to);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;setLogsList(sqlSession.selectList("getLogs", params));</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;// Calculate total pages<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;setTotal((int) Math.ceil((double) getRecords() / (double) getRows()));<br />&#160;&#160; &#160;&#160;&#160; &#160;} catch (Exception e) {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;addActionError(getText("read.error", getTextElements(title)));<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;setError(getText("read.error", getTextElements(title)));<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;logger.error(e.getMessage(), e);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;result = ActionSupport.ERROR;<br />&#160;&#160; &#160;&#160;&#160; &#160;} finally {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;try {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if (sqlSession != null) {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;sqlSession.close();<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;} catch (Exception e) {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;logger.error("Generic exception during close database session", e);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;}</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;return result;<br />&#160;&#160; &#160;}</p>
</p>
<p><u>log.jsp</u></p>
<p>&#60;html&#62;<br />&#160;&#160; &#160;&#60;head&#62;<br />&#160;&#160;&#160; &#60;title&#62;&#60;s:text name="application.title"/&#62;&#60;/title&#62;</p>
<p>&#60;jsp:include page="include/header.jsp" flush="false"&#62;&#60;/jsp:include&#62;</p>
<p>&#160;&#160; &#160;&#160;&#160;&#160; &#60;script type="text/javascript"&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;jQuery(document).ready(function()<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160;&#160; // Refresh log list<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;function rowsrefresh(event, data)<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;$("#list").trigger("reloadGrid");<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160;&#160; jQuery("#list").jqGrid<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;({<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;url: 'log_jqgrid',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;datatype: 'json',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;datastr: 'logsList',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;mtype: 'POST',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;height: '230px',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;autowidth: true,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;rowNum: 10,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;rowList: [],<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;viewrecords: true,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;pager: jQuery('#pager'),<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;jsonReader: {root: 'logsList', repeatitems: false}, &#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;colNames:<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;[<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;'&#60;s:text name="log.grid.colName.username"/&#62;',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;'&#60;s:text name="log.grid.colName.action"/&#62;',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;'&#60;s:text name="log.grid.colName.datetime"/&#62;',<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;], <br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;colModel:<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;[ <br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{name:'username', &#160;&#160; &#160;editable:false,&#160; hidden:false, sortable:false}, <br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{name:'action', &#160;&#160; &#160;&#160;&#160; &#160;editable:false,&#160; hidden:false, sortable:false}, <br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{name:'actiontime',&#160;&#160; &#160;editable:false,&#160; hidden:false, sortable:false}<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;] <br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}).navGrid("#pager", {refresh:false, add:false, edit:false, del:false, search:false})<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;.navButtonAdd("#pager", {caption:'', title:'&#60;s:text name="function.refresh"/&#62;',&#160;&#160; &#160;buttonicon:'ui-icon-refresh',&#160;&#160; &#160;onClickButton:function (event, data) {rowsrefresh();}});</p>
<p>&#160;&#160;&#160; &#60;/head&#62;</p>
<p>&#160;&#160;&#160; &#60;body&#62;</p>
<p>&#160; &#160;&#160;&#160; &#60;div id="main"&#62;</p>
<p>&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160;&#160; &#60;table id="list" class="scroll"&#62;&#60;/table&#62;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#60;div id="pager" class="scroll"&#62;&#60;/div&#62;<br />&#160;&#160; &#160;&#160;&#160;&#160; &#60;/div&#62;<br />&#160;&#160; &#160;&#60;/body&#62;<br />&#60;/html&#62;</p>
</p>
<p>Give me a hand, please ?</p>
</p>
<p>Thanks in advance,</p>
<p>mariusv5.</p>
]]></description>
        	        	<pubDate>Tue, 15 Mar 2011 20:57:07 +0200</pubDate>
        </item>
</channel>
</rss>