</span><span class="jsdoc-string">"start" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"start"</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-string">"limit" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"limit"</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-string">"sort" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"sort"</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">"dir" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"dir"
+ </span><span class="jsdoc-string">"dir" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"dir"</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">"multisort" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">"_multisort"
</span><span class="jsdoc-syntax">};
</span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">config.data</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-var">this.relayEvents</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.proxy</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-string">"loadexception"</span><span class="jsdoc-syntax">]);
}
</span><span class="jsdoc-var">this.sortToggle </span><span class="jsdoc-syntax">= {};
+ </span><span class="jsdoc-var">this.sortOrder </span><span class="jsdoc-syntax">= []; </span><span class="jsdoc-comment">// array of order of sorting - updated by grid if multisort is enabled.
</span><span class="jsdoc-var">Roo.data.Store.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
* @cfg {Object} sortInfo A config object in the format: {field: "fieldName", direction: "ASC|DESC"}
*/
/**
+ * @cfg {Boolean} multiSort enable multi column sorting (sort is based on the order of columns, remote only at present)
+ */
+ </span><span class="jsdoc-var">multiSort</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-comment">/**
* @cfg {boolean} remoteSort True if sorting is to be handled by requesting the Proxy to provide a refreshed
* version of the data object in sorted order, as opposed to sorting the Record cache in place (defaults to false).
*/
</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">pn</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">"sort"</span><span class="jsdoc-syntax">]] = </span><span class="jsdoc-var">this.sortInfo.field</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">pn</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">"dir"</span><span class="jsdoc-syntax">]] = </span><span class="jsdoc-var">this.sortInfo.direction</span><span class="jsdoc-syntax">;
}
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.multiSort</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.paramNames</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">pn</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">"multisort"</span><span class="jsdoc-syntax">]] = </span><span class="jsdoc-var">Roo.encode</span><span class="jsdoc-syntax">( { </span><span class="jsdoc-var">sort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.sortToggle</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">order</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.sortOrder </span><span class="jsdoc-syntax">});
+ }
+
</span><span class="jsdoc-var">this.proxy.load</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.reader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.loadRecords</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
}
},
</span><span class="jsdoc-var">sort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fieldName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">f </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.fields.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fieldName</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dir</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.sortInfo </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.sortInfo.field </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">){ </span><span class="jsdoc-comment">// toggle sort dir
+ </span><span class="jsdoc-var">this.sortToggle</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">this.sortToggle</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-var">f.sortDir</span><span class="jsdoc-syntax">;
+
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.multiSort </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-var">this.sortInfo </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.sortInfo.field </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">) ){ </span><span class="jsdoc-comment">// toggle sort dir
</span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">this.sortToggle</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">f.name</span><span class="jsdoc-syntax">] || </span><span class="jsdoc-string">"ASC"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.toggle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"ASC"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"DESC"</span><span class="jsdoc-syntax">);
}</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
</span><span class="jsdoc-var">dir </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">f.sortDir</span><span class="jsdoc-syntax">;