<?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: SelectionStorage</title>
	<link>http://www.trirand.com/blog/?page_id=393/feature-request/selectionstorage</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/feature-request/selectionstorage/rss" rel="self" type="application/rss+xml" />
        <item>
        	<title>omega2k on SelectionStorage</title>
        	<link>http://www.trirand.com/blog/?page_id=393/feature-request/selectionstorage#p22077</link>
        	<category>Feature Request</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/feature-request/selectionstorage#p22077</guid>
        	        	<description><![CDATA[<p>Hi Tony,</p>
</p>
<p>great work so far... but could you integrate a storage function for the grid-selection? what do you think?</p>
<p>My intention was the problem getting all selected rows eg. for editing or mass-delete... but on paging, sorting or with a live-grid, the selection gets lost! I wrote a small plugin to solve this, but it&#39;s "wasting" some events...</p>
</p>
<blockquote>
<p>/**</p>
<p>* keeps selection on paging and sorting</p>
<p>*</p>
<p>* @author Patrick Kracht</p>
<p>*/</p>
</p>
<p>//This prototype is provided by the Mozilla foundation and</p>
<p>//is distributed under the MIT license.</p>
<p>//http://www.ibiblio.org/pub/Linux/LICENSES/mit.license</p>
<p>if (!Array.prototype.indexOf)</p>
<p>{</p>
<p>Array.prototype.indexOf = function(elt /*, from*/)</p>
<p>{</p>
<p>var len = this.length;</p>
</p>
<p>var from = Number(arguments[1]) &#124;&#124; 0;</p>
<p>from = (from &#60; 0)</p>
<p>? Math.ceil(from)</p>
<p>: Math.floor(from);</p>
<p>if (from &#60; 0)</p>
<p>from += len;</p>
</p>
<p>for (; from &#60; len; from++)</p>
<p>{</p>
<p>if (from in this &#38;&#38;</p>
<p>this[from] === elt)</p>
<p>return from;</p>
<p>}</p>
<p>return -1;</p>
<p>};</p>
<p>}</p>
</p>
<p>;(function($)</p>
<p>{</p>
<p>var _stored = [];</p>
<p>var _active = [];</p>
</p>
<p>function _addDiff(grid,data_old,data_new)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
<p>for (var i = 0; i &#60; data_new.length; i++)</p>
<p>{</p>
<p>//neuer Wert</p>
<p>var val = data_new[i];</p>
</p>
<p>//wenn im alten Array der neue Wert nicht vorkommt und noch nicht gespeichert</p>
<p>if ( data_old.indexOf(val) &#60; 0 &#38;&#38; _stored[id].indexOf(val) &#60; 0 &#38;&#38; val.length != 0 )</p>
<p>{</p>
<p>//ID adden</p>
<p>_stored[id].push(val);</p>
<p>}</p>
<p>}</p>
<p>};</p>
</p>
<p>function _delDiff(grid,data_old,data_new)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
<p>for (var i = 0; i &#60; data_old.length; i++)</p>
<p>{</p>
<p>//Position des alten Werts im Speicher suchen</p>
<p>var pos = _stored[id].indexOf(data_old[i]);</p>
</p>
<p>//wenn in aktueller Auswahl nicht mehr und noch im Speicher</p>
<p>if ( data_new.indexOf(data_old[i]) &#60; 0 &#38;&#38; pos &#62;= 0 )</p>
<p>{</p>
<p>//Element l&#246;schen</p>
<p>_stored[id].splice(pos, 1);</p>
<p>}</p>
<p>}</p>
<p>};</p>
</p>
<p>function _reSelect(grid)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
</p>
<p>//Selektion zur&#252;cksetzen</p>
<p>grid.jqGrid(&#39;resetSelection&#39;);</p>
</p>
<p>//neue Haken setzen</p>
<p>for (var i = 0; i &#60; _stored[id].length; i++)</p>
<p>{</p>
<p>//Haken setzen</p>
<p>grid.jqGrid(&#39;setSelection&#39;,_stored[id][i]);</p>
<p>}</p>
</p>
<p>//aktuelle Selektion = aktive Selektion</p>
<p>_active[id] = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);</p>
<p>};</p>
</p>
<p>function fn_add(grid,data)</p>
<p>{</p>
<p>//Speicher beschreiben</p>
<p>_addDiff(grid,[],data);</p>
</p>
<p>//Selektion zur&#252;cksetzen</p>
<p>_reSelect(grid);</p>
<p>};</p>
</p>
<p>function fn_set(grid,data)</p>
<p>{</p>
<p>//Speicher beschreiben</p>
<p>_stored[grid.attr(&#39;id&#39;)] = new String(data).split(&#39;,&#39;);</p>
</p>
<p>//Selektion zur&#252;cksetzen</p>
<p>_reSelect(grid);</p>
<p>};</p>
</p>
<p>function fn_del(grid,data)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
</p>
<p>//zuerst aktuelle Selektion speichern</p>
<p>fn_save(grid);</p>
</p>
<p>//komplett ToString wandeln</p>
<p>data = new String(data).split(&#39;,&#39;);</p>
</p>
<p>//suchen, welche Zeile entfernt worden sind</p>
<p>for (var i = 0; i &#60; data.length; i++)</p>
<p>{</p>
<p>//suchen, ob sich die ID im Speicher befindet</p>
<p>var pos = _stored[id].indexOf(data[i]);</p>
</p>
<p>//wenn ID vorhanden</p>
<p>if ( pos &#62;= 0 )</p>
<p>{</p>
<p>//Position des entfernten Elements im Speicher l&#246;schen</p>
<p>_stored[id].splice(pos, 1);</p>
<p>}</p>
<p>}</p>
</p>
<p>//Selektion zur&#252;cksetzen</p>
<p>_reSelect(grid);</p>
<p>};</p>
</p>
<p>function fn_clear(grid)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
</p>
<p>//aktuelle und gespeicherte Selektion l&#246;schen</p>
<p>_active[id] = [];</p>
<p>_stored[id] = [];</p>
</p>
<p>//Grid zur&#252;cksetzen und Selektion l&#246;schen</p>
<p>grid.setGridParam({selarrrow:[],page:1});</p>
<p>grid.jqGrid(&#39;resetSelection&#39;).trigger(&#39;reloadGrid&#39;);</p>
<p>};</p>
</p>
<p>function fn_get(grid)</p>
<p>{</p>
<p>fn_save(grid);</p>
<p>return _stored[grid.attr(&#39;id&#39;)];</p>
<p>};</p>
</p>
<p>function fn_save(grid)</p>
<p>{</p>
<p>//aktuelle Selektion merken</p>
<p>var current = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
</p>
<p>//&#196;nderungen &#252;bernehmen, seit dem letzten Laden</p>
<p>_addDiff(grid,_active[id],current);</p>
<p>_delDiff(grid,_active[id],current);</p>
</p>
<p>//aktive Selektion = neue Selektion</p>
<p>_active[id] = current;</p>
<p>};</p>
</p>
<p>function fn_load(grid)</p>
<p>{</p>
<p>var id = grid.attr(&#39;id&#39;);</p>
</p>
<p>//nur wenn etwas gespeichert wurde, Selektion herstellen</p>
<p>if( typeof(_stored[id]) == &#39;object&#39; )</p>
<p>{</p>
<p>$.each(_stored[id], function(index,id)</p>
<p>{</p>
<p>grid.jqGrid(&#39;setSelection&#39;,id);</p>
<p>});</p>
<p>}</p>
</p>
<p>//aktive Selektion auf der aktuellen Seite merken</p>
<p>_active[id] = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);</p>
<p>};</p>
</p>
<p>$.fn.jqGridSelectionStorage = function(action,data)</p>
<p>{</p>
<p>//Objekt und ID des Grids holen</p>
<p>var ret = [];</p>
<p>var o   = $(this);</p>
<p>var id  = o.attr(&#39;id&#39;);</p>
</p>
<p>//macht nur Sinn bei MultiSelect</p>
<p>if ( !o.getGridParam(&#39;multiselect&#39;) ) return false;</p>
</p>
<p>//wenn noch keine Selektion gespeichert, leeres Objekt erstellen</p>
<p>if( typeof( _stored[id] ) == &#39;undefined&#39; )</p>
<p>{</p>
<p>_stored[id] = [];</p>
<p>_active[id] = [];</p>
<p>}</p>
</p>
<p>//Aktion w&#228;hlen</p>
<p>switch( action )</p>
<p>{</p>
<p>case &#39;get&#39;:		ret = fn_get(o);	break;</p>
<p>case &#39;set&#39;:		fn_set(o,data);		break;</p>
<p>case &#39;add&#39;:		fn_add(o,data);		break;</p>
<p>case &#39;del&#39;:		fn_del(o,data);		break;</p>
<p>case &#39;save&#39;:	fn_save(o);			break;</p>
<p>case &#39;load&#39;:	fn_load(o); 		break;</p>
<p>case &#39;clear&#39;:	fn_clear(o); 		break;</p>
<p>default: alert(&#39;jqGridSelectionStorage(\&#39;&#39;+action+&#39;\&#39;) not defined!&#39;); break;</p>
<p>}</p>
</p>
<p>return ret;</p>
<p>};</p>
</p>
<p>})(jQuery);</p>
</blockquote>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">/**<br />&#160;* Beh&#228;lt die Selektion im Grid beim Seitenwechsel<br />&#160;* <br />&#160;* @author Patrick Kracht<br />&#160;*/</p>
<p>//This prototype is provided by the Mozilla foundation and<br />//is distributed under the MIT license.<br />//http://www.ibiblio.org/pub/Linux/LICENSES/mit.license<br />if (!Array.prototype.indexOf)<br />{<br />&#160; Array.prototype.indexOf = function(elt /*, from*/)<br />&#160; {<br />&#160;&#160;&#160; var len = this.length;</p>
<p>&#160;&#160;&#160; var from = Number(arguments[1]) &#124;&#124; 0;<br />&#160;&#160;&#160; from = (from &#60; 0)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ? Math.ceil(from)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Math.floor(from);<br />&#160;&#160;&#160; if (from &#60; 0)<br />&#160;&#160;&#160;&#160;&#160; from += len;</p>
<p>&#160;&#160;&#160; for (; from &#60; len; from++)<br />&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160; if (from in this &#38;&#38;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this[from] === elt)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return from;<br />&#160;&#160;&#160; }<br />&#160;&#160;&#160; return -1;<br />&#160; };<br />}</p>
<p>;(function($)<br />{<br />&#160;&#160; &#160;var _stored = [];<br />&#160;&#160; &#160;var _active = [];<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function _addDiff(grid,data_old,data_new)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;for (var i = 0; i &#60; data_new.length; i++)<br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//neuer Wert<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;var val = data_new[i];<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//wenn im alten Array der neue Wert nicht vorkommt und noch nicht gespeichert<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if ( data_old.indexOf(val) &#60; 0 &#38;&#38; _stored[id].indexOf(val) &#60; 0 &#38;&#38; val.length != 0 )<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//ID adden<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;_stored[id].push(val);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function _delDiff(grid,data_old,data_new)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;for (var i = 0; i &#60; data_old.length; i++)<br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//Position des alten Werts im Speicher suchen<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;var pos = _stored[id].indexOf(data_old[i]);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//wenn in aktueller Auswahl nicht mehr und noch im Speicher<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if ( data_new.indexOf(data_old[i]) &#60; 0 &#38;&#38; pos &#62;= 0 )<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//Element l&#246;schen<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;_stored[id].splice(pos, 1);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function _reSelect(grid)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Selektion zur&#252;cksetzen<br />&#160;&#160; &#160;&#160;&#160; &#160;grid.jqGrid(&#39;resetSelection&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//neue Haken setzen<br />&#160;&#160; &#160;&#160;&#160; &#160;for (var i = 0; i &#60; _stored[id].length; i++)<br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//Haken setzen<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;grid.jqGrid(&#39;setSelection&#39;,_stored[id][i]);<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//aktuelle Selektion = aktive Selektion<br />&#160;&#160; &#160;&#160;&#160; &#160;_active[id] = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_add(grid,data)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;//Speicher beschreiben<br />&#160;&#160; &#160;&#160;&#160; &#160;_addDiff(grid,[],data);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Selektion zur&#252;cksetzen<br />&#160;&#160; &#160;&#160;&#160; &#160;_reSelect(grid);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_set(grid,data)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;//Speicher beschreiben<br />&#160;&#160; &#160;&#160;&#160; &#160;_stored[grid.attr(&#39;id&#39;)] = new String(data).split(&#39;,&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Selektion zur&#252;cksetzen<br />&#160;&#160; &#160;&#160;&#160; &#160;_reSelect(grid);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_del(grid,data)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//zuerst aktuelle Selektion speichern<br />&#160;&#160; &#160;&#160;&#160; &#160;fn_save(grid);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//komplett ToString wandeln<br />&#160;&#160; &#160;&#160;&#160; &#160;data = new String(data).split(&#39;,&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//suchen, welche Zeile entfernt worden sind<br />&#160;&#160; &#160;&#160;&#160; &#160;for (var i = 0; i &#60; data.length; i++)<br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//suchen, ob sich die ID im Speicher befindet<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;var pos = _stored[id].indexOf(data[i]);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//wenn ID vorhanden<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;if ( pos &#62;= 0 )<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;//Position des entfernten Elements im Speicher l&#246;schen<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;_stored[id].splice(pos, 1);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Selektion zur&#252;cksetzen<br />&#160;&#160; &#160;&#160;&#160; &#160;_reSelect(grid);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_clear(grid)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//aktuelle und gespeicherte Selektion l&#246;schen<br />&#160;&#160; &#160;&#160;&#160; &#160;_active[id] = [];<br />&#160;&#160; &#160;&#160;&#160; &#160;_stored[id] = [];<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Grid zur&#252;cksetzen und Selektion l&#246;schen<br />&#160;&#160; &#160;&#160;&#160; &#160;grid.setGridParam({selarrrow:[],page:1});<br />&#160;&#160; &#160;&#160;&#160; &#160;grid.jqGrid(&#39;resetSelection&#39;).trigger(&#39;reloadGrid&#39;);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_get(grid)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;fn_save(grid);<br />&#160;&#160; &#160;&#160;&#160; &#160;return _stored[grid.attr(&#39;id&#39;)];<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_save(grid)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;//aktuelle Selektion merken<br />&#160;&#160; &#160;&#160;&#160; &#160;var current = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//&#196;nderungen &#252;bernehmen, seit dem letzten Laden<br />&#160;&#160; &#160;&#160;&#160; &#160;_addDiff(grid,_active[id],current);<br />&#160;&#160; &#160;&#160;&#160; &#160;_delDiff(grid,_active[id],current);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//aktive Selektion = neue Selektion<br />&#160;&#160; &#160;&#160;&#160; &#160;_active[id] = current;<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;function fn_load(grid)<br />&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;var id = grid.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//nur wenn etwas gespeichert wurde, Selektion herstellen<br />&#160;&#160; &#160;&#160;&#160; &#160;if( typeof(_stored[id]) == &#39;object&#39; ) <br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;$.each(_stored[id], function(index,id)<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;grid.jqGrid(&#39;setSelection&#39;,id);<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;});<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//aktive Selektion auf der aktuellen Seite merken<br />&#160;&#160; &#160;&#160;&#160; &#160;_active[id] = new String( grid.getGridParam(&#39;selarrrow&#39;) ).split(&#39;,&#39;);<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />&#160;&#160; &#160;$.fn.jqGridSelectionStorage = function(action,data)<br />&#160;&#160;&#160; {<br />&#160;&#160; &#160;&#160;&#160; &#160;//Objekt und ID des Grids holen<br />&#160;&#160; &#160;&#160;&#160; &#160;var ret = [];<br />&#160;&#160; &#160;&#160;&#160; &#160;var o&#160;&#160; = $(this);<br />&#160;&#160; &#160;&#160;&#160; &#160;var id&#160; = o.attr(&#39;id&#39;);<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//macht nur Sinn bei MultiSelect<br />&#160;&#160; &#160;&#160;&#160; &#160;if ( !o.getGridParam(&#39;multiselect&#39;) ) return false;<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//wenn noch keine Selektion gespeichert, leeres Objekt erstellen<br />&#160;&#160; &#160;&#160;&#160; &#160;if( typeof( _stored[id] ) == &#39;undefined&#39; )<br />&#160;&#160; &#160;&#160;&#160; &#160;{<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;_stored[id] = [];<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;_active[id] = [];<br />&#160;&#160; &#160;&#160;&#160; &#160;}<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160; &#160;//Aktion w&#228;hlen<br />&#160;&#160; &#160;&#160;&#160;&#160; switch( action )<br />&#160;&#160; &#160;&#160;&#160;&#160; {<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;get&#39;:&#160;&#160; &#160;&#160;&#160; &#160;ret = fn_get(o);&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;set&#39;:&#160;&#160; &#160;&#160;&#160; &#160;fn_set(o,data);&#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;add&#39;:&#160;&#160; &#160;&#160;&#160; &#160;fn_add(o,data);&#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;del&#39;:&#160;&#160; &#160;&#160;&#160; &#160;fn_del(o,data);&#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;save&#39;:&#160;&#160; &#160;fn_save(o);&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;load&#39;:&#160;&#160; &#160;fn_load(o); &#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;case &#39;clear&#39;:&#160;&#160; &#160;fn_clear(o); &#160;&#160; &#160;&#160;&#160; &#160;break;<br />&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;default: alert(&#39;jqGridSelectionStorage(\&#39;&#39;+action+&#39;\&#39;) not defined!&#39;); break;<br />&#160;&#160; &#160;&#160;&#160;&#160; }<br />&#160;&#160; &#160;&#160;&#160; &#160;<br />&#160;&#160; &#160;&#160;&#160;&#160; return ret;<br />&#160;&#160; &#160;};<br />&#160;&#160; &#160;<br />})(jQuery);</p>
</div>
]]></description>
        	        	<pubDate>Mon, 14 Feb 2011 15:45:40 +0200</pubDate>
        </item>
</channel>
</rss>