<?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</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/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#p22428</link>
        	<category>Help</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/help/jqgrid-problem-query-repeat-always-two-times#p22428</guid>
        	        	<description><![CDATA[<p>I&#39;ve a problem with a jqGrid.</p>
</p>
<p>I&#39;had built json method for retrieve records from database table. This method is always throws 2 times.</p>
<p><span style="text-decoration: underline;">struts.xml</span></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><span style="text-decoration: underline;">LogAction.java - method getList()</span></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><span style="text-decoration: underline;">log.jsp</span></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: &#39;log_jqgrid&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;datatype: &#39;json&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;datastr: &#39;logsList&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;mtype: &#39;POST&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;height: &#39;230px&#39;,<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(&#39;#pager&#39;),<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;jsonReader: {root: &#39;logsList&#39;, 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;&#39;&#60;s:text name="log.grid.colName.username"/&#62;&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#39;&#60;s:text name="log.grid.colName.action"/&#62;&#39;,<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#39;&#60;s:text name="log.grid.colName.datetime"/&#62;&#39;,<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:&#39;username&#39;, &#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:&#39;action&#39;, &#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:&#39;actiontime&#39;,&#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:&#39;&#39;, title:&#39;&#60;s:text name="function.refresh"/&#62;&#39;,&#160;&#160; &#160;buttonicon:&#39;ui-icon-refresh&#39;,&#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:04 +0200</pubDate>
        </item>
</channel>
</rss>