;(function($){ /** * jqGrid extension for custom methods * Tony Tomov tony@trirand.com * http://trirand.com/blog/ * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html **/ $.fn.extend({ getColProp : function(colname){ var ret ={}, $t = this[0]; if ( !$t.grid ) { return; } var cM = $t.p.colModel; for ( var i =0;i0 ? true : false; gr.p.postData = $.extend(gr.p.postData,sdata); var saveurl; if(self.p.url) { saveurl = $(gr).getGridParam('url'); $(gr).setGridParam({url:self.p.url}); } $(gr).setGridParam({search:sd,page:1}).trigger("reloadGrid"); if(saveurl) {$(gr).setGridParam({url:saveurl});} if($.isFunction(self.p.afterSearch)){self.p.afterSearch();} }; var clearSearch = function(){ var sdata={}, v, j=0; var gr = $(self.p.gridid)[0]; if($.isFunction(self.p.beforeClear)){self.p.beforeClear();} $.each(self.p.filterModel,function(i,n){ v = (this.defval) ? this.defval : ""; if(!this.stype){this.stype=='text';} switch (this.stype) { case 'select' : if(v) { var v1; $("select[name="+this.name+"] option",self).each(function (){ if ($(this).text() == v) { this.selected = true; v1 = $(this).val(); return false; } }); // post the key and not the text sdata[this.index] = v1 || ""; if(self.p.marksearched){ $("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell"); } j++; } else { if(self.p.marksearched){ $("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell"); } // remove from postdata try { delete gr.p.postData[this.index]; } catch(e) {} } break; case 'text': $("input[name="+this.name+"]",self).val(v); if(v) { sdata[this.index] = v; if(self.p.marksearched){ $("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell"); } j++; } else { if(self.p.marksearched){ $("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell"); } // remove from postdata try { delete gr.p.postData[this.index]; } catch(e) {} } } }); var sd = j>0 ? true : false; gr.p.postData = $.extend(gr.p.postData,sdata); var saveurl; if(self.p.url) { saveurl = $(gr).getGridParam('url'); $(gr).setGridParam({url:self.p.url}); } $(gr).setGridParam({search:sd,page:1}).trigger("reloadGrid"); if(saveurl) {$(gr).setGridParam({url:saveurl});} if($.isFunction(self.p.afterClear)){self.p.afterClear();} }; var formFill = function(){ var tr = document.createElement("tr"); var tr1, sb, cb,tl,td, td1; if(self.p.formtype=='horizontal'){ $(tbl).append(tr); } $.each(self.p.filterModel,function(i,n){ tl = document.createElement("td"); $(tl).append(""); td = document.createElement("td"); var $t=this; if(!this.stype) { this.stype='text';} switch (this.stype) { case "select": if(this.surl) { // data returned should have already constructed html select $(td).load(this.surl,function(){ if($t.defval) $("select",this).val($t.defval); $("select",this).attr({name:$t.name, id: "sg_"+$t.name}); if($t.sopt) $("select",this).attr($t.sopt); if(self.p.gridToolbar===true && $t.width) { $("select",this).width($t.width); } if(self.p.autosearch===true){ $("select",this).change(function(e){ triggerSearch(); return false; }); } }); } else { // sopt to construct the values if($t.sopt.value) { var so = $t.sopt.value.split(";"), sv, ov; var elem = document.createElement("select"); $(elem).attr({name:$t.name, id: "sg_"+$t.name}).attr($t.sopt); for(var k=0; k"); if($t.sopt) $("input",td).attr($t.sopt); if(self.p.gridToolbar===true && $t.width) { if($.browser.msie) { $("input",td).width($t.width-4); } else { $("input",td).width($t.width-2); } } if(self.p.autosearch===true){ $("input",td).keypress(function(e){ var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; if(key == 13){ triggerSearch(); return false; } return this; }); } break; } if(self.p.formtype=='horizontal'){ if(self.p.gridToolbar===true && self.p.gridNames===false) { $(tr).append(td); } else { $(tr).append(tl).append(td); } $(tr).append(td); } else { tr1 = document.createElement("tr"); $(tr1).append(tl).append(td); $(tbl).append(tr1); } }); td = document.createElement("td"); if(self.p.enableSearch === true){ sb = ""; $(td).append(sb); $("input#sButton",td).click(function(){ triggerSearch(); return false; }); } if(self.p.enableClear === true) { cb = ""; $(td).append(cb); $("input#cButton",td).click(function(){ clearSearch(); return false; }); } if(self.p.enableClear === true || self.p.enableSearch === true) { if(self.p.formtype=='horizontal') { $(tr).append(td); } else { tr1 = document.createElement("tr"); $(tr1).append(" ").append(td); $(tbl).append(tr1); } } }; var frm = $("
"); var tbl =$("
"); $(frm).append(tbl); formFill(); $(this).append(frm); this.triggerSearch = function () {triggerSearch();}; this.clearSearch = function () {clearSearch();}; }); } }); })(jQuery);