<?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: Selecting back selected rows when changing the "number of requested rows"</title>
	<link>http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows</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/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows/rss" rel="self" type="application/rss+xml" />
        <item>
        	<title>steph on Selecting back selected rows when changing the "number of requested rows"</title>
        	<link>http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4117</link>
        	<category>Bugs</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4117</guid>
        	        	<description><![CDATA[<p>Hi Tony,</p>
<p>Thanks for your reply, using onPaging and getGridParam(&#39;selarrrow&#39;) is the way to go for remembering selected rows, but it doesn&#39;t solve the transient problem when&#160; changing the number of rows displayed (e.g. say passing from 10 to 20 rows). The following is a workaround solving the problem (Do a &#8220;setSelection&#8221;, make sure it&#39;s selected, if not, do a &#8220;setSelection&#8221; again:</p>
<p>onPaging: function() {<br />&#160;&#160;&#160; var rows = $(&#39;#list&#39;).getGridParam(&#39;selarrrow&#39;);<br />&#160;&#160;&#160; for ( var i in rows ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ( ! array_search(rows[i], selectedRowIds) ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; selectedRowIds.push(rows[i]);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160; }<br />},<br />gridComplete: function() {<br />&#160;&#160;&#160; for ( var i in selectedRowIds ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $(&#39;#list&#39;).setSelection(selectedRowIds[i]);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; /**<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; * Workaround: Make sure it&#39;s selected, if not, select the row again.<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; */<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ( ! array_search(selectedRowIds[i], $(&#39;#list&#39;).getGridParam(&#39;selarrrow&#39;)) ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $(&#39;#list&#39;).setSelection(selectedRowIds[i]);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } <br />&#160;&#160;&#160; }<br />},</p>
<p>array_search (equivalent of PHP one, c.f. <a href="http://kevin.vanzonneveld.net" rel="nofollow" target="_blank">http://kevin.vanzonneveld.net</a>).</p>
<p>Anyway, it&#39;s working with this workaround, but as I wrote in my first message, gridComplete seams to behave differently right after a change in the number of rows displayed (as long as the setSelection function is concerned).</p>
<p>Thanks again Tony for you reply and for this great plugin.</p>
<p>Regards,</p>
<p>Steph</p>
]]></description>
        	        	<pubDate>Thu, 22 Jan 2009 21:00:21 +0200</pubDate>
        </item>
        <item>
        	<title>tony on Selecting back selected rows when changing the "number of requested rows"</title>
        	<link>http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4087</link>
        	<category>Bugs</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4087</guid>
        	        	<description><![CDATA[<p>Hello,</p>
<p>You can use getGridParam(&#39;selarrrow&#39;) to get selected rows when in multiselect mode and use onPaging event (which is raised before populate) to store the selected rows</p>
</p>
<p>Regards</p>
<p>Tony</p>
]]></description>
        	        	<pubDate>Thu, 22 Jan 2009 09:07:11 +0200</pubDate>
        </item>
        <item>
        	<title>steph on Selecting back selected rows when changing the "number of requested rows"</title>
        	<link>http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4053</link>
        	<category>Bugs</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/bugs/selecting-back-selected-rows-when-changing-the-number-of-requested-rows#p4053</guid>
        	        	<description><![CDATA[<p>Hi,</p>
<p>I wanted to be able to remember the selected rows (multiselect: true) when navigating the grid, I coded the following, which work fine when paginating (first, prev, next, last) and sorting, but doesn&#39;t work when changing the "number of requested rows" (select box):</p>
<p>//-----[2 global variables]</p>
<p>/**<br />&#160;* @var array - currently selected rowids<br />&#160;*/<br />var selectedRowIds = new Array();</p>
<p>/**<br />&#160;* @var bool - set to false in method gridComplete <br />&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; to "disable" method onSelectRow<br />&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; while it "setSelection" the currently <br />&#160;*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; selected rowids.<br />&#160;*/<br />var enableOnSelectRow = true;</p>
<p>//-----[2 jqgrid methods]<br />/**<br />&#160;* If selected rowid, push it onto "selectedRowIds",<br />&#160;* If deselected rowid, remove it from "selectedRowIds"<br />&#160;*/<br />onSelectRow: function(rowid, selected) {<br />&#160;&#160;&#160; if ( ! enableOnSelectRow ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return;<br />&#160;&#160;&#160; }<br />&#160;&#160;&#160; <br />&#160;&#160;&#160; if ( selected ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; selectedRowIds.push(rowid);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return;<br />&#160;&#160;&#160; }<br />&#160;&#160;&#160; <br />&#160;&#160;&#160; for( var i in selectedRowIds ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ( rowid === selectedRowIds[i] ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; selectedRowIds.splice(i, 1);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160; <br />&#160;&#160;&#160; }&#160;&#160;&#160; <br />}, </p>
<p>/**<br />&#160;* Iterate over "selectedRowIds" calling <br />&#160;* "setSelection"<br />&#160;*/<br />gridComplete: function() {<br />&#160;&#160;&#160; enableOnSelectRow = false;<br />&#160;&#160;&#160; for ( var i in selectedRowIds ) {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $(&#39;#list&#39;).setSelection(selectedRowIds[i]);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; }<br />&#160;&#160;&#160; enableOnSelectRow = true;<br />},</p>
</p>
<p>If you select some rows and paginate or sort, everything is fine, the selected rows are preserved. If you change the "number of requested rows" (select box), you lose the selected rows until another pagination or sorting is done. Somehow, the "gridComplete" method seams to behave differently when invoked after a "number of requested rows" change, as opposed to a pagination/sorting invocation. </p>
<p>Thank you very much for your help.</p>
<p>Steph</p>
]]></description>
        	        	<pubDate>Mon, 19 Jan 2009 21:38:09 +0200</pubDate>
        </item>
</channel>
</rss>