Example #1
0
        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());
        }
Example #2
0
        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());
        }
Example #3
0
        //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));
        }