private string GetStartupOptions(JQGrid grid, bool subGrid) { StringBuilder builder = new StringBuilder(); string str = subGrid ? "jQuery('#' + subgrid_table_id)" : string.Format("jQuery('#{0}')", grid.ID); string str2 = subGrid ? "jQuery('#' + pager_id)" : string.Format("jQuery('#{0}')", grid.ID + "_pager"); string pagerSelectorID = subGrid ? "'#' + pager_id" : string.Format("'#{0}'", grid.ID + "_pager"); string str4 = subGrid ? "&parentRowID=' + row_id + '" : string.Empty; string str5 = (grid.DataUrl.IndexOf("?") > 0) ? "&" : "?"; string str6 = (grid.EditUrl.IndexOf("?") > 0) ? "&" : "?"; string str7 = string.Format("{0}{1}jqGridID={2}{3}", new object[] { grid.DataUrl, str5, grid.ID, str4 }); string str8 = string.Format("{0}{1}jqGridID={2}&editMode=1{3}", new object[] { grid.EditUrl, str6, grid.ID, str4 }); builder.AppendFormat("{0}.jqGrid({{", str); //tree if (grid.TreeGrid) { string str9 = grid.TreeGrid ? "true" : "false"; builder.AppendFormat("treeGrid:{0},treedatatype:'json',", str9); if (grid.TreeGridModel == TreeGridModel.adjacency) { builder.Append("treeGridModel: 'adjacency',"); } builder.AppendFormat("ExpandColumn: '{0}',", grid.ExpandColumn); builder.Append("ExpandColClick: 'true',"); //,level_field:'level',leaf_field:'isLeaf',expanded_field:'expanded' //builder.Append("treeReader:{parent_id_field:'" + grid.ParentIdField + "'},"); builder.Append("treeReader:{level_field:'level',parent_id_field:'parent_id','leaf_field':'isLeaf',expanded_field:'expanded'},"); } //end tree builder.AppendFormat("url: '{0}'", str7); builder.AppendFormat(",editurl: '{0}'", str8); if (grid.TreeGrid) { builder.AppendFormat(",mtype: 'POST'", new object[0]); } else { builder.AppendFormat(",mtype: 'GET'", new object[0]); } builder.AppendFormat(",datatype: 'json'", new object[0]); builder.AppendFormat(",page: {0}", grid.PagerSettings.CurrentPage); builder.AppendFormat(",colNames: {0}", this.GetColNames(grid)); builder.AppendFormat(",colModel: {0}", this.GetColModel(grid)); builder.AppendFormat(",viewrecords: true", new object[0]); builder.AppendFormat(",scrollrows: true", new object[0]); builder.AppendFormat(",prmNames: {{ id: \"{0}\" }}", Util.GetPrimaryKeyField(grid)); if (grid.AppearanceSettings.ShowFooter) { builder.Append(",footerrow: true"); builder.Append(",userDataOnFooter: true"); } if (!grid.AppearanceSettings.ShrinkToFit) { builder.Append(",shrinkToFit: false"); } if (grid.ColumnReordering) { builder.Append(",sortable: true"); } if (grid.AppearanceSettings.ScrollBarOffset != 0x12) { builder.AppendFormat(",scrollOffset: {0}", grid.AppearanceSettings.ScrollBarOffset); } if (grid.AppearanceSettings.RightToLeft) { builder.Append(",direction: 'rtl'"); } if (grid.AutoWidth) { builder.Append(",autowidth: true"); } if (!grid.ShrinkToFit) { builder.Append(",shrinkToFit: false"); } if ((grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Bottom) || (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom)) { builder.AppendFormat(",pager: {0}", str2); } if ((grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Top) || (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom)) { builder.Append(",toppager: true"); } if (grid.RenderingMode == RenderingMode.Optimized) { if (grid.HierarchySettings.HierarchyMode != HierarchyMode.None) { throw new Exception("Optimized rendering is not compatible with hierarchy."); } builder.Append(",gridview: true"); } if ((grid.HierarchySettings.HierarchyMode == HierarchyMode.Parent) || (grid.HierarchySettings.HierarchyMode == HierarchyMode.ParentAndChild)) { builder.Append(",subGrid: true"); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.SubGridRowExpanded)) { builder.AppendFormat(",subGridRowExpanded: {0}", grid.ClientSideEvents.SubGridRowExpanded); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.ServerError)) { builder.AppendFormat(",errorCell: {0}", grid.ClientSideEvents.ServerError); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowSelect)) { builder.AppendFormat(",onSelectRow: {0}", grid.ClientSideEvents.RowSelect); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.ColumnSort)) { builder.AppendFormat(",onSortCol: {0}", grid.ClientSideEvents.ColumnSort); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowDoubleClick)) { builder.AppendFormat(",ondblClickRow: {0}", grid.ClientSideEvents.RowDoubleClick); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowRightClick)) { builder.AppendFormat(",onRightClickRow: {0}", grid.ClientSideEvents.RowRightClick); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.LoadDataError)) { builder.AppendFormat(",loadError: {0}", grid.ClientSideEvents.LoadDataError); } else { builder.AppendFormat(",loadError: {0}", "jqGrid_aspnet_loadErrorHandler"); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.GridInitialized)) { builder.AppendFormat(",gridComplete: {0}", grid.ClientSideEvents.GridInitialized); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.BeforeAjaxRequest)) { builder.AppendFormat(",gridComplete: {0}", grid.ClientSideEvents.BeforeAjaxRequest); } if (!grid.AppearanceSettings.HighlightRowsOnHover) { builder.Append(",hoverrows: false"); } if (grid.AppearanceSettings.AlternateRowBackground) { builder.Append(",altRows: true"); } if (grid.AppearanceSettings.ShowRowNumbers) { builder.Append(",rownumbers: true"); } if (grid.AppearanceSettings.RowNumbersColumnWidth != 0x19) { builder.AppendFormat(",rownumWidth: {0}", grid.AppearanceSettings.RowNumbersColumnWidth.ToString()); } if (grid.PagerSettings.ScrollBarPaging) { builder.AppendFormat(",scroll: 1", new object[0]); } if (!grid.TreeGrid) { builder.AppendFormat(",rowNum: {0}", grid.PagerSettings.PageSize.ToString()); builder.AppendFormat(",rowList: {0}", grid.PagerSettings.PageSizeOptions.ToString()); } if (!string.IsNullOrEmpty(grid.PagerSettings.NoRowsMessage)) { builder.AppendFormat(",emptyrecords: '{0}'", grid.PagerSettings.NoRowsMessage.ToString()); } builder.AppendFormat(",editDialogOptions: {0}", this.GetEditOptions(grid)); builder.AppendFormat(",addDialogOptions: {0}", this.GetAddOptions(grid)); builder.AppendFormat(",delDialogOptions: {0}", this.GetDelOptions(grid)); builder.AppendFormat(",searchDialogOptions: {0}", this.GetSearchOptions(grid)); builder.AppendFormat(",jsonreader: {{ id: \"{0}\" }}", grid.Columns[Util.GetPrimaryKeyIndex(grid)].DataField); if (!string.IsNullOrEmpty(grid.SortSettings.InitialSortColumn)) { builder.AppendFormat(",sortname: '{0}'", grid.SortSettings.InitialSortColumn); } builder.AppendFormat(",sortorder: '{0}'", grid.SortSettings.InitialSortDirection.ToString().ToLower()); if (grid.MultiSelect) { builder.Append(",multiselect: true"); if (grid.MultiSelectMode == MultiSelectMode.SelectOnCheckBoxClickOnly) { builder.AppendFormat(",multiboxonly: true", grid.MultiSelect.ToString().ToLower()); } if (grid.MultiSelectKey != MultiSelectKey.None) { builder.AppendFormat(",multikey: '{0}'", this.GetMultiKeyString(grid.MultiSelectKey)); } } if (!string.IsNullOrEmpty(grid.AppearanceSettings.Caption)) { builder.AppendFormat(",caption: '{0}'", grid.AppearanceSettings.Caption); } if (!grid.Width.IsEmpty) { builder.AppendFormat(",width: '{0}'", grid.Width.ToString().Replace("px", "")); } if (!grid.Height.IsEmpty) { builder.AppendFormat(",height: '{0}'", grid.Height.ToString().Replace("px", "")); } if (grid.GroupSettings.GroupFields.Count > 0) { builder.Append(",grouping:true"); builder.Append(",groupingView: {"); builder.AppendFormat("groupField: ['{0}']", grid.GroupSettings.GroupFields[0].DataField); builder.AppendFormat(",groupColumnShow: [{0}]", grid.GroupSettings.GroupFields[0].ShowGroupColumn.ToString().ToLower()); builder.AppendFormat(",groupText: ['{0}']", grid.GroupSettings.GroupFields[0].HeaderText); builder.AppendFormat(",groupOrder: ['{0}']", grid.GroupSettings.GroupFields[0].GroupSortDirection.ToString().ToLower()); builder.AppendFormat(",groupSummary: [{0}]", grid.GroupSettings.GroupFields[0].ShowGroupSummary.ToString().ToLower()); builder.AppendFormat(",groupCollapse: {0}", grid.GroupSettings.CollapseGroups.ToString().ToLower()); builder.AppendFormat(",groupDataSorted: true", new object[0]); builder.Append("}"); } builder.AppendFormat(",viewsortcols: [{0},'{1}',{2}]", "false", grid.SortSettings.SortIconsPosition.ToString().ToLower(), (grid.SortSettings.SortAction == SortAction.ClickOnHeader) ? "true" : "false"); builder.AppendFormat("}})\r", new object[0]); builder.Append(this.GetToolBarOptions(grid, subGrid, pagerSelectorID)); builder.Append(this.GetLoadErrorHandler()); if (grid.ToolBarSettings.ShowSearchToolBar) { builder.AppendFormat("{0}.filterToolbar();", str); } //builder.AppendFormat("{0}.jqGrid('bindKeys');", str); return(builder.ToString()); }
private string GetStartupOptions(JQGrid grid, bool subGrid) { StringBuilder stringBuilder = new StringBuilder(); string arg = subGrid ? "jQuery('#' + subgrid_table_id)" : string.Format("jQuery('#{0}')", grid.ID); string arg2 = subGrid ? "jQuery('#' + pager_id)" : string.Format("jQuery('#{0}')", grid.ID + "_pager"); string pagerSelectorID = subGrid ? "'#' + pager_id" : string.Format("'#{0}'", grid.ID + "_pager"); string text = subGrid ? "&parentRowID=' + row_id + '" : string.Empty; string text2 = (grid.DataUrl.IndexOf("?") > 0) ? "&" : "?"; string text3 = (grid.EditUrl.IndexOf("?") > 0) ? "&" : "?"; string arg3 = string.Format("{0}{1}jqGridID={2}{3}", new object[] { grid.DataUrl, text2, grid.ID, text }); string arg4 = string.Format("{0}{1}jqGridID={2}&editMode=1{3}", new object[] { grid.EditUrl, text3, grid.ID, text }); if (grid.Columns.Count > 0 && grid.Columns[0].Frozen) { grid.AppearanceSettings.ShrinkToFit = false; } stringBuilder.AppendFormat("{0}.jqGrid({{", arg); stringBuilder.AppendFormat("url: '{0}'", arg3); stringBuilder.AppendFormat(",loadui: '{0}'", grid.LoadUI); stringBuilder.AppendFormat(",editurl: '{0}'", arg4); stringBuilder.AppendFormat(",mtype: 'GET'", new object[0]); stringBuilder.AppendFormat(",datatype: '{0}'", grid.DataType); stringBuilder.AppendFormat(",page: {0}", grid.PagerSettings.CurrentPage); stringBuilder.AppendFormat(",colNames: {0}", this.GetColNames(grid)); stringBuilder.AppendFormat(",colModel: {0}", this.GetColModel(grid)); stringBuilder.AppendFormat(",viewrecords: true", new object[0]); stringBuilder.AppendFormat(",scrollrows: false", new object[0]); stringBuilder.AppendFormat(",prmNames: {{ id: \"{0}\" }}", Util.GetPrimaryKeyField(grid)); if (grid.AppearanceSettings.ShowFooter) { stringBuilder.Append(",footerrow: true"); stringBuilder.Append(",userDataOnFooter: true"); } if (!grid.AppearanceSettings.ShrinkToFit) { stringBuilder.Append(",shrinkToFit: false"); } if (grid.ColumnReordering) { stringBuilder.Append(",sortable: true"); } if (grid.AppearanceSettings.ScrollBarOffset != 18) { stringBuilder.AppendFormat(",scrollOffset: {0}", grid.AppearanceSettings.ScrollBarOffset); } if (grid.AppearanceSettings.RightToLeft) { stringBuilder.Append(",direction: 'rtl'"); } if (grid.AutoWidth) { stringBuilder.Append(",autowidth: true"); } if (!grid.ShrinkToFit) { stringBuilder.Append(",shrinkToFit: false"); } if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Bottom || grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom) { stringBuilder.AppendFormat(",pager: {0}", arg2); } if (grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.Top || grid.ToolBarSettings.ToolBarPosition == ToolBarPosition.TopAndBottom) { stringBuilder.Append(",toppager: true"); } if (grid.RenderingMode == RenderingMode.Optimized) { if (grid.HierarchySettings.HierarchyMode != HierarchyMode.None) { throw new Exception("Optimized rendering is not compatible with hierarchy."); } stringBuilder.Append(",gridview: true"); } if (grid.HierarchySettings.HierarchyMode == HierarchyMode.Parent || grid.HierarchySettings.HierarchyMode == HierarchyMode.ParentAndChild) { stringBuilder.Append(",subGrid: true"); stringBuilder.AppendFormat(",subGridOptions: {0}", grid.HierarchySettings.ToJSON()); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.SubGridRowExpanded)) { stringBuilder.AppendFormat(",subGridRowExpanded: {0}", grid.ClientSideEvents.SubGridRowExpanded); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.ServerError)) { stringBuilder.AppendFormat(",errorCell: {0}", grid.ClientSideEvents.ServerError); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowSelect)) { stringBuilder.AppendFormat(",onSelectRow: {0}", grid.ClientSideEvents.RowSelect); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.ColumnSort)) { stringBuilder.AppendFormat(",onSortCol: {0}", grid.ClientSideEvents.ColumnSort); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowDoubleClick)) { stringBuilder.AppendFormat(",ondblClickRow: {0}", grid.ClientSideEvents.RowDoubleClick); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.RowRightClick)) { stringBuilder.AppendFormat(",onRightClickRow: {0}", grid.ClientSideEvents.RowRightClick); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.LoadDataError)) { stringBuilder.AppendFormat(",loadError: {0}", grid.ClientSideEvents.LoadDataError); } else { stringBuilder.AppendFormat(",loadError: {0}", "jqGrid_aspnet_loadErrorHandler"); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.GridInitialized)) { stringBuilder.AppendFormat(",gridComplete: {0}", grid.ClientSideEvents.GridInitialized); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.BeforeAjaxRequest)) { stringBuilder.AppendFormat(",beforeRequest: {0}", grid.ClientSideEvents.BeforeAjaxRequest); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.AfterAjaxRequest)) { stringBuilder.AppendFormat(",loadComplete: {0}", grid.ClientSideEvents.AfterAjaxRequest); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.SerializeGridData)) { stringBuilder.AppendFormat(",serializeGridData:{0}", grid.ClientSideEvents.SerializeGridData); } if (!string.IsNullOrEmpty(grid.ClientSideEvents.SerializeRowData)) { stringBuilder.AppendFormat(",serializeRowData:{0}", grid.ClientSideEvents.SerializeRowData); } if (grid.TreeGridSettings.Enabled) { stringBuilder.AppendFormat(",treeGrid: true", new object[0]); stringBuilder.AppendFormat(",treedatatype: 'json'", new object[0]); stringBuilder.AppendFormat(",treeGridModel: 'adjacency'", new object[0]); string arg5 = "{ level_field: 'tree_level', parent_id_field: 'tree_parent', leaf_field: 'tree_leaf', expanded_field: 'tree_expanded', loaded: 'tree_loaded', icon_field: 'tree_icon' }"; stringBuilder.AppendFormat(",treeReader: {0}", arg5); stringBuilder.AppendFormat(",ExpandColumn: '{0}'", this.GetFirstVisibleDataField(grid)); Hashtable hashtable = new Hashtable(); if (!string.IsNullOrEmpty(grid.TreeGridSettings.CollapsedIcon)) { hashtable.Add("plus", grid.TreeGridSettings.CollapsedIcon); } if (!string.IsNullOrEmpty(grid.TreeGridSettings.ExpandedIcon)) { hashtable.Add("minus", grid.TreeGridSettings.ExpandedIcon); } if (!string.IsNullOrEmpty(grid.TreeGridSettings.LeafIcon)) { hashtable.Add("leaf", grid.TreeGridSettings.LeafIcon); } if (hashtable.Count > 0) { stringBuilder.AppendFormat(",treeIcons: {0}", new JavaScriptSerializer().Serialize(hashtable)); } } if (!grid.AppearanceSettings.HighlightRowsOnHover) { stringBuilder.Append(",hoverrows: false"); } if (grid.AppearanceSettings.AlternateRowBackground) { stringBuilder.Append(",altRows: true"); } if (grid.AppearanceSettings.ShowRowNumbers) { stringBuilder.Append(",rownumbers: true"); } if (grid.AppearanceSettings.RowNumbersColumnWidth != 25) { stringBuilder.AppendFormat(",rownumWidth: {0}", grid.AppearanceSettings.RowNumbersColumnWidth.ToString()); } if (grid.PagerSettings.ScrollBarPaging) { stringBuilder.AppendFormat(",scroll: 1", new object[0]); } stringBuilder.AppendFormat(",rowNum: {0}", grid.PagerSettings.PageSize.ToString()); stringBuilder.AppendFormat(",rowList: {0}", grid.PagerSettings.PageSizeOptions.ToString()); //stringBuilder.Append(",recordpos:left"); if (!string.IsNullOrEmpty(grid.PagerSettings.NoRowsMessage)) { stringBuilder.AppendFormat(",emptyrecords: '{0}'", grid.PagerSettings.NoRowsMessage.ToString()); } stringBuilder.AppendFormat(",editDialogOptions: {0}", this.GetEditOptions(grid)); stringBuilder.AppendFormat(",addDialogOptions: {0}", this.GetAddOptions(grid)); stringBuilder.AppendFormat(",delDialogOptions: {0}", this.GetDelOptions(grid)); stringBuilder.AppendFormat(",searchDialogOptions: {0}", this.GetSearchOptions(grid)); string format; if (grid.TreeGridSettings.Enabled) { format = ",jsonReader: {{ id: \"{0}\", repeatitems:false,subgrid:{{repeatitems:false}} }}"; } else { format = ",jsonReader: {{ id: \"{0}\" }}"; } stringBuilder.AppendFormat(format, grid.Columns[Util.GetPrimaryKeyIndex(grid)].DataField); if (!string.IsNullOrEmpty(grid.SortSettings.InitialSortColumn)) { stringBuilder.AppendFormat(",sortname: '{0}'", grid.SortSettings.InitialSortColumn); } stringBuilder.AppendFormat(",sortorder: '{0}'", grid.SortSettings.InitialSortDirection.ToString().ToLower()); if (grid.MultiSelect) { stringBuilder.Append(",multiselect: true"); if (grid.MultiSelectMode == MultiSelectMode.SelectOnCheckBoxClickOnly) { stringBuilder.AppendFormat(",multiboxonly: true", grid.MultiSelect.ToString().ToLower()); } if (grid.MultiSelectKey != MultiSelectKey.None) { stringBuilder.AppendFormat(",multikey: '{0}'", this.GetMultiKeyString(grid.MultiSelectKey)); } } if (!string.IsNullOrEmpty(grid.AppearanceSettings.Caption)) { stringBuilder.AppendFormat(",caption: '{0}'", grid.AppearanceSettings.Caption); } if (!grid.Width.IsEmpty) { stringBuilder.AppendFormat(",width: '{0}'", grid.Width.ToString().Replace("px", "")); } if (!grid.Height.IsEmpty) { stringBuilder.AppendFormat(",height: '{0}'", grid.Height.ToString().Replace("px", "")); } if (grid.GroupSettings.GroupFields.Count > 0) { stringBuilder.Append(",grouping:true"); stringBuilder.Append(",groupingView: {"); stringBuilder.AppendFormat("groupField: ['{0}']", grid.GroupSettings.GroupFields[0].DataField); stringBuilder.AppendFormat(",groupColumnShow: [{0}]", grid.GroupSettings.GroupFields[0].ShowGroupColumn.ToString().ToLower()); stringBuilder.AppendFormat(",groupText: ['{0}']", grid.GroupSettings.GroupFields[0].HeaderText); stringBuilder.AppendFormat(",groupOrder: ['{0}']", grid.GroupSettings.GroupFields[0].GroupSortDirection.ToString().ToLower()); stringBuilder.AppendFormat(",groupSummary: [{0}]", grid.GroupSettings.GroupFields[0].ShowGroupSummary.ToString().ToLower()); stringBuilder.AppendFormat(",groupCollapse: {0}", grid.GroupSettings.CollapseGroups.ToString().ToLower()); stringBuilder.AppendFormat(",groupDataSorted: true", new object[0]); stringBuilder.Append("}"); } stringBuilder.AppendFormat(",viewsortcols: [{0},'{1}',{2}]", "false", grid.SortSettings.SortIconsPosition.ToString().ToLower(), (grid.SortSettings.SortAction == SortAction.ClickOnHeader) ? "true" : "false"); stringBuilder.AppendFormat("}})\r", new object[0]); stringBuilder.Append(this.GetToolBarOptions(grid, subGrid, pagerSelectorID)); if (!grid.PagerSettings.ScrollBarPaging) { stringBuilder.AppendFormat(".bindKeys()", new object[0]); } if (grid.Columns.Count > 0 && grid.Columns[0].Frozen) { stringBuilder.AppendFormat(".setFrozenColumns()", new object[0]); } stringBuilder.Append(";"); stringBuilder.Append(this.GetLoadErrorHandler()); stringBuilder.Append(";"); if (grid.HeaderGroups.Count > 0) { List <Hashtable> list = new List <Hashtable>(); foreach (JQGridHeaderGroup current in grid.HeaderGroups) { list.Add(current.ToHashtable()); } stringBuilder.AppendFormat("{0}.setGroupHeaders( {{ useColSpanStyle:true,groupHeaders:{1} }});", arg, new JavaScriptSerializer().Serialize(list)); } if (grid.ToolBarSettings.ShowSearchToolBar) { stringBuilder.AppendFormat("{0}.filterToolbar({1});", arg, new JsonSearchToolBar(grid).Process()); } return(stringBuilder.ToString()); }
//public ActionResult ShowEditValidationMessage(string errorMessage) //{ // HttpContext.Current.Response.Clear(); // HttpContext.Current.Response.StatusCode = 500; // HttpContext.Current.Response.TrySkipIisCustomErrors = true; // return new ContentResult // { // Content = errorMessage, // }; //} //private IQueryable FilterDataSource2(object dataSource, NameValueCollection queryString) //{ // IQueryable iqueryable = (dataSource as IQueryable); // Guard.IsNotNull(iqueryable, "DataSource", "should implement the IQueryable interface."); // int pageIndex = this.GetPageIndex(queryString["page"]); // int num = Convert.ToInt32(queryString["rows"]); // string text = queryString["sidx"]; // string str = queryString["sord"]; // string arg_5F_0 = queryString["parentRowID"]; // string text2 = queryString["_search"]; // string text3 = queryString["filters"]; // string text4 = queryString["searchField"]; // string searchString = queryString["searchString"]; // string searchOper = queryString["searchOper"]; // this.PagerSettings.CurrentPage = pageIndex; // this.PagerSettings.PageSize = num; // if (!string.IsNullOrEmpty(text2) && text2 != "false") // { // try // { // if (string.IsNullOrEmpty(text3) && !string.IsNullOrEmpty(text4)) // { // iqueryable = iqueryable.Where(Util.GetWhereClause(this, text4, searchString, searchOper), new object[0]); // } // else // { // if (!string.IsNullOrEmpty(text3)) // { // iqueryable = iqueryable.Where(Util.GetWhereClause(this, text3), new object[0]); // } // else // { // if (this.ToolBarSettings.ShowSearchToolBar || text2 == "true") // { // iqueryable = iqueryable.Where(Util.GetWhereClause(this, queryString), new object[0]); // } // } // } // } // catch (DataTypeNotSetException ex) // { // throw ex; // } // catch (ParseException pex) // { // throw pex; // } // catch (Exception ex) // { // throw ex; // } // } // int num2 = iqueryable.Count(); // int totalPagesCount = (int)Math.Ceiling((double)((float)num2 / (float)num)); // if (string.IsNullOrEmpty(text) && this.SortSettings.AutoSortByPrimaryKey) // { // if (this.Columns.Count == 0) // { // throw new Exception("JQGrid must have at least one column defined."); // } // text = Util.GetPrimaryKeyField(this); // str = "asc"; // } // if (!string.IsNullOrEmpty(text)) // { // string text5 = ""; // if (this.GroupSettings.GroupFields.Count > 0) // { // string str2 = text.Split(new char[] // { // ' ' // })[0]; // string str3 = text.Contains(" ") ? text.Split(new char[] // { // ' ' // })[1].Split(new char[] // { // ',' // })[0] : "asc"; // if (text.Contains(",")) // { // text = text.Split(new char[] // { // ',' // })[1]; // } // text5 = str2 + " " + str3; // } // if (text != null && text == " ") // { // text = ""; // } // if (!string.IsNullOrEmpty(text)) // { // if (this.GroupSettings.GroupFields.Count > 0 && !text5.EndsWith(",")) // { // text5 += ","; // } // text5 = text5 + text + " " + str; // } // iqueryable = iqueryable.OrderBy(text5, new object[0]); // } // return iqueryable; //} private JsonResult FilterDataSource(object dataSource, NameValueCollection queryString, out IQueryable iqueryable) { iqueryable = (dataSource as IQueryable); IQueryable ignoreFilterFieldData = iqueryable; Guard.IsNotNull(iqueryable, "DataSource", "should implement the IQueryable interface."); int pageIndex = this.GetPageIndex(queryString["page"]); int num = Convert.ToInt32(queryString["rows"]); string text = queryString["sidx"]; string str = queryString["sord"]; string arg_5F_0 = queryString["parentRowID"]; bool isSearch = false; string search = queryString["_search"]; if (!string.IsNullOrEmpty(search)) { isSearch = search.ToLower() == "true"; } //if(!string.IsNullOrEmpty(this.ClientSideEvents.SerializeGridData)) //{ // text2 = "true"; //} //if (!string.IsNullOrEmpty(this.ExcelExportSettings.Url)) //{ // text2 = "true"; //} string filters = queryString["filters"]; string searchFiled = queryString["searchField"]; string searchString = queryString["searchString"]; string searchOper = queryString["searchOper"]; this.PagerSettings.CurrentPage = pageIndex; this.PagerSettings.PageSize = num; if (isSearch) { try { //search if (!string.IsNullOrEmpty(searchFiled)) { ignoreFilterFieldData = ignoreFilterFieldData.Where(Util.GetWhereClause(this, searchFiled, searchString, searchOper), new object[0]); iqueryable = iqueryable.Where(Util.GetWhereClause(this, searchFiled, searchString, searchOper), new object[0]); } //else //{ //filters if (!string.IsNullOrEmpty(filters)) { ignoreFilterFieldData = ignoreFilterFieldData.Where(Util.GetWhereClause(this, filters, this.IgnoreFilterField), new object[0]); iqueryable = iqueryable.Where(Util.GetWhereClause(this, filters), new object[0]); } //else if (!string.IsNullOrEmpty(filters) && !string.IsNullOrEmpty(searchFiled)) //{ // //filters+search // iqueryable = iqueryable.Where(Util.GetWhereClause(this, searchFiled, searchString, searchOper), new object[0]); // iqueryable = iqueryable.Where(Util.GetWhereClause(this, filters), new object[0]); //} //else //{ //if (this.ToolBarSettings.ShowSearchToolBar || isSearch) //{ string whereStr = Util.GetWhereClause(this, queryString); if (!string.IsNullOrEmpty(whereStr)) { ignoreFilterFieldData = ignoreFilterFieldData.Where(whereStr, new object[0]); iqueryable = iqueryable.Where(whereStr, new object[0]); } //} //} //} } catch (DataTypeNotSetException ex) { throw ex; } catch (ParseException) { return(new JsonResult { Data = new { Error = "表达式错误" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } catch (Exception) { return(new JsonResult { Data = new object(), JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } } int num2 = iqueryable.Count(); int totalPagesCount = (int)Math.Ceiling((double)((float)num2 / (float)num)); if (string.IsNullOrEmpty(text) && this.SortSettings.AutoSortByPrimaryKey) { if (this.Columns.Count == 0) { throw new Exception("JQGrid must have at least one column defined."); } text = Util.GetPrimaryKeyField(this); str = "asc"; } if (!string.IsNullOrEmpty(text)) { string text5 = ""; if (this.GroupSettings.GroupFields.Count > 0) { string str2 = text.Split(new char[] { ' ' })[0]; string str3 = text.Contains(" ") ? text.Split(new char[] { ' ' })[1].Split(new char[] { ',' })[0] : "asc"; if (text.Contains(",")) { text = text.Split(new char[] { ',' })[1]; } text5 = str2 + " " + str3; } if (text != null && text == " ") { text = ""; } if (!string.IsNullOrEmpty(text)) { if (this.GroupSettings.GroupFields.Count > 0 && !text5.EndsWith(",")) { text5 += ","; } text5 = text5 + text + " " + str; } iqueryable = iqueryable.OrderBy(text5, new object[0]); } IQueryable filterData = iqueryable; iqueryable = iqueryable.Skip((pageIndex - 1) * num).Take(num); DataTable dataTable = iqueryable.ToDataTable(this); this.OnDataResolved(new JQGridDataResolvedEventArgs(this, iqueryable, this.DataSource as IQueryable, filterData, ignoreFilterFieldData)); if (this.TreeGridSettings.Enabled) { JsonTreeResponse response = new JsonTreeResponse(pageIndex, totalPagesCount, num2, num, dataTable.Rows.Count, Util.GetFooterInfo(this)); return(Util.ConvertToTreeJson(response, this, dataTable)); } JsonResponse response2 = new JsonResponse(pageIndex, totalPagesCount, num2, num, dataTable.Rows.Count, Util.GetFooterInfo(this)); return(Util.ConvertToJson(response2, this, dataTable)); }