示例#1
0
        /// <summary>
        /// Return the JavaScript that is used to initialize jqGrid with given options.
        /// </summary>
        /// <returns>The JavaScript that initializes jqGrid with give options</returns>
        /// <exception cref="System.InvalidOperationException">
        /// <list type="bullet">
        /// <item><description>TreeGrid and data grouping are both enabled.</description></item>
        /// <item><description>Rows numbers and data grouping are both enabled.</description></item>
        /// <item><description>Dynamic scrolling and data grouping are both enabled.</description></item>
        /// <item><description>TreeGrid and GridView are both enabled.</description></item>
        /// <item><description>SubGrid and GridView are both enabled.</description></item>
        /// <item><description>AfterInsertRow event and GridView are both enabled.</description></item>
        /// </list>
        /// </exception>
        public static IHtmlContent JqGridJavaScript(this IHtmlHelper htmlHelper, JqGridOptions options)
        {
            ValidateJqGridConstraints(options);

            IUrlHelperFactory  urlHelperFactory  = htmlHelper.ViewContext.HttpContext.RequestServices.GetRequiredService <IUrlHelperFactory>();
            IJqGridJsonService jqGridJsonService = htmlHelper.ViewContext.HttpContext.RequestServices.GetRequiredService <IJqGridJsonService>();

            options.ApplyModelMetadata(htmlHelper.MetadataProvider, urlHelperFactory.GetUrlHelper(htmlHelper.ViewContext));

            StringBuilder javaScriptBuilder = new StringBuilder();

            javaScriptBuilder.AppendFormat("$('#{0}')", options.Id)
            .AppendJqGridScript(options, jqGridJsonService, false);

            return(new HtmlString(javaScriptBuilder.ToString()));
        }
示例#2
0
        /// <inheritdoc />
        public override Task ExecuteResultAsync(ActionContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            IJqGridJsonService jqGridJsonService = context.HttpContext.RequestServices.GetRequiredService <IJqGridJsonService>();
            IActionResultExecutor <JsonResult> jsonResultExecutor = context.HttpContext.RequestServices.GetRequiredService <IActionResultExecutor <JsonResult> >();

            return(jsonResultExecutor.ExecuteAsync(context, new JsonResult(Value, jqGridJsonService.GetJqGridJsonResultSerializerSettings(SerializerSettings))
            {
                ContentType = ContentType,
                StatusCode = StatusCode
            }));
        }
        private JqGridRequest BindSearchingProperties(JqGridRequest model, ModelBindingContext bindingContext)
        {
            model.Searching = false;
            if (!String.IsNullOrWhiteSpace(JqGridRequest.ParametersNames.Searching))
            {
                ValueProviderResult searchingValueResult = bindingContext.ValueProvider.GetValue(JqGridRequest.ParametersNames.Searching);
                if (searchingValueResult != ValueProviderResult.None)
                {
                    model.Searching = ConvertToBoolean(searchingValueResult.FirstValue);
                }
            }

            model.SearchingFilter  = null;
            model.SearchingFilters = null;

            if (model.Searching)
            {
                ValueProviderResult searchingFiltersValueResult = bindingContext.ValueProvider.GetValue(SEARCH_FILTERS_BINDING_KEY);
                if ((searchingFiltersValueResult != ValueProviderResult.None) && !String.IsNullOrWhiteSpace(searchingFiltersValueResult.FirstValue))
                {
                    IJqGridJsonService jqGridJsonService = bindingContext.HttpContext.RequestServices.GetRequiredService <IJqGridJsonService>();

                    model.SearchingFilters = jqGridJsonService.DeserializeJqGridSearchingFilters(searchingFiltersValueResult.FirstValue);
                }
                else
                {
                    string searchingName  = bindingContext.ValueProvider.GetValue(SEARCH_NAME_BINDING_KEY).FirstValue;
                    string searchingValue = bindingContext.ValueProvider.GetValue(SEARCH_VALUE_BINDING_KEY).FirstValue;

                    JqGridSearchOperators searchingOperator = JqGridSearchOperators.Eq;
                    Enum.TryParse(bindingContext.ValueProvider.GetValue(SEARCH_OPERATOR_BINDING_KEY).FirstValue, true, out searchingOperator);

                    if (!String.IsNullOrWhiteSpace(searchingName) && (!String.IsNullOrWhiteSpace(searchingValue) || ((searchingOperator & JqGridSearchOperators.NullOperators) != 0)))
                    {
                        model.SearchingFilter = new JqGridSearchingFilter()
                        {
                            SearchingName = searchingName, SearchingOperator = searchingOperator, SearchingValue = searchingValue
                        };
                    }
                }
            }

            return(model);
        }
        private static StringBuilder AppendColumnModelFormatter(this StringBuilder javaScriptBuilder, JqGridColumnModel columnModel, IJqGridJsonService jqGridJsonService)
        {
            if (!String.IsNullOrWhiteSpace(columnModel.Formatter))
            {
                if (columnModel.Formatter == JqGridPredefinedFormatters.JQueryUIButton)
                {
                    javaScriptBuilder.AppendColumnModelJQueryUIButtonFormatter(columnModel.FormatterOptions);
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.FORMATTER, columnModel.Formatter)
                    .AppendColumnModelFormatterOptions(columnModel.Formatter, columnModel.FormatterOptions, jqGridJsonService)
                    .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.UNFORMATTER, columnModel.UnFormatter);
                }
            }

            return(javaScriptBuilder);
        }
        private static StringBuilder AppendColumnModelElementOptions(this StringBuilder javaScriptBuilder, JqGridColumnElementOptions elementOptions, bool isJQueryUIElement, IJqGridJsonService jqGridJsonService)
        {
            if ((elementOptions.DataEvents != null) && (elementOptions.DataEvents.Count > 0))
            {
                javaScriptBuilder.AppendJavaScriptArrayFieldOpening(JqGridOptionsNames.ColumnModel.Element.DATA_EVENTS);
                foreach (JqGridColumnDataEvent dataEvent in elementOptions.DataEvents)
                {
                    javaScriptBuilder.AppendJavaScriptObjectOpening()
                    .AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.Element.DataEvent.TYPE, dataEvent.Type)
                    .AppendJavaScriptObjectObjectField(JqGridOptionsNames.ColumnModel.Element.DataEvent.DATA, dataEvent.Data, jqGridJsonService)
                    .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DataEvent.FUNCTION, dataEvent.Function)
                    .AppendJavaScriptObjectClosing();
                }
                javaScriptBuilder.AppendJavaScriptArrayFieldClosing();
            }

            if (!isJQueryUIElement)
            {
                javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DATA_INIT, elementOptions.DataInit);

                if (!String.IsNullOrWhiteSpace(elementOptions.DataUrl))
                {
                    javaScriptBuilder.AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.Element.DATA_URL, elementOptions.DataUrl)
                    .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.BUILD_SELECT, elementOptions.BuildSelect);
                }
                else if (!String.IsNullOrEmpty(elementOptions.Value))
                {
                    javaScriptBuilder.AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.Element.VALUE, elementOptions.Value);
                }
                else if (elementOptions.ValueDictionary != null)
                {
                    javaScriptBuilder.AppendJavaScriptObjectObjectField(JqGridOptionsNames.ColumnModel.Element.VALUE, elementOptions.ValueDictionary, jqGridJsonService);
                }
            }

            return(javaScriptBuilder.AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.Element.DEFAULT_VALUE, elementOptions.DefaultValue));
        }
        private static StringBuilder AppendColumnModelSearchOptions(this StringBuilder javaScriptBuilder, JqGridColumnModel columnModel, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            javaScriptBuilder.AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.SEARCHABLE, columnModel.Searchable, JqGridOptionsDefaults.ColumnModel.Searchable);

            if (columnModel.Searchable)
            {
                bool isJQueryUIElement = (columnModel.SearchType == JqGridColumnSearchTypes.JQueryUIAutocomplete) || (columnModel.SearchType == JqGridColumnSearchTypes.JQueryUIDatepicker) || (columnModel.SearchType == JqGridColumnSearchTypes.JQueryUISpinner);
                bool isNativeElement   = (columnModel.SearchType == JqGridColumnSearchTypes.Date) || (columnModel.SearchType == JqGridColumnSearchTypes.DateTimeLocal);
                if (!isJQueryUIElement && !isNativeElement)
                {
                    javaScriptBuilder.AppendJavaScriptObjectEnumField(JqGridOptionsNames.ColumnModel.SEARCH_TYPE, columnModel.SearchType, JqGridOptionsDefaults.ColumnModel.SearchType);
                }

                if ((columnModel.SearchOptions != null) && (isJQueryUIElement || isNativeElement || !columnModel.SearchOptions.AreDefault()))
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(JqGridOptionsNames.ColumnModel.SEARCH_OPTIONS)
                    .AppendJavaScriptObjectObjectField(JqGridOptionsNames.ColumnModel.Searching.HTML_ATTRIBUTES, columnModel.SearchOptions.HtmlAttributes, jqGridJsonService)
                    .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Searching.CLEAR_SEARCH, columnModel.SearchOptions.ClearSearch, JqGridOptionsDefaults.ColumnModel.Searching.ClearSearch)
                    .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Searching.SEARCH_HIDDEN, columnModel.SearchOptions.SearchHidden, JqGridOptionsDefaults.ColumnModel.Searching.SearchHidden)
                    .AppendSearchOperators(columnModel.SearchOptions.SearchOperators);

                    switch (columnModel.SearchType)
                    {
                    case JqGridColumnSearchTypes.Date:
                        javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DATA_INIT, DATE_DATA_INIT);
                        break;

                    case JqGridColumnSearchTypes.DateTimeLocal:
                        javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DATA_INIT, DATE_TIME_LOCAL_DATA_INIT);
                        break;

                    case JqGridColumnSearchTypes.JQueryUIAutocomplete:
                        javaScriptBuilder.AppendColumnModelJQueryUIAutocompleteDataInit(columnModel.SearchOptions);
                        break;

                    case JqGridColumnSearchTypes.JQueryUIDatepicker:
                        javaScriptBuilder.AppendColumnModelJQueryUIDatepickerDataInit(columnModel.SearchOptions, options, asSubgrid);
                        break;

                    case JqGridColumnSearchTypes.JQueryUISpinner:
                        javaScriptBuilder.AppendColumnModelJQueryUISpinnerDataInit(columnModel.SearchOptions);
                        break;
                    }

                    javaScriptBuilder.AppendColumnModelElementOptions(columnModel.SearchOptions, isJQueryUIElement, jqGridJsonService)
                    .AppendJavaScriptObjectFieldClosing();
                }

                javaScriptBuilder.AppendColumnModelRules(JqGridOptionsNames.ColumnModel.SEARCH_RULES, columnModel.SearchRules);
            }

            return(javaScriptBuilder);
        }
        private static StringBuilder AppendColumnModelEditOptions(this StringBuilder javaScriptBuilder, JqGridColumnModel columnModel, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            javaScriptBuilder.AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.EDITABLE, columnModel.Editable, JqGridOptionsDefaults.ColumnModel.Editable);

            if (columnModel.Editable)
            {
                bool isJQueryUIElement = (columnModel.EditType == JqGridColumnEditTypes.JQueryUIAutocomplete) || (columnModel.EditType == JqGridColumnEditTypes.JQueryUIDatepicker) || (columnModel.EditType == JqGridColumnEditTypes.JQueryUISpinner);
                bool isNativeElement   = (columnModel.EditType == JqGridColumnEditTypes.Date) || (columnModel.EditType == JqGridColumnEditTypes.DateTimeLocal);

                if (!isJQueryUIElement && !isNativeElement)
                {
                    javaScriptBuilder.AppendJavaScriptObjectEnumField(JqGridOptionsNames.ColumnModel.EDIT_TYPE, columnModel.EditType, JqGridOptionsDefaults.ColumnModel.EditType);
                }

                if ((columnModel.EditOptions != null) && (isJQueryUIElement || isNativeElement || !columnModel.EditOptions.AreDefault()))
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(JqGridOptionsNames.ColumnModel.EDIT_OPTIONS)
                    .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Editing.CUSTOM_ELEMENT, columnModel.EditOptions.CustomElementFunction)
                    .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Editing.CUSTOM_VALUE, columnModel.EditOptions.CustomValueFunction)
                    .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Editing.NULL_IF_EMPTY, columnModel.EditOptions.NullIfEmpty, JqGridOptionsDefaults.ColumnModel.Editing.NullIfEmpty);

                    if (!String.IsNullOrWhiteSpace(columnModel.EditOptions.PostDataScript))
                    {
                        javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Editing.POST_DATA, columnModel.EditOptions.PostDataScript);
                    }
                    else if (columnModel.EditOptions.PostData != null)
                    {
                        javaScriptBuilder.AppendJavaScriptObjectObjectField(JqGridOptionsNames.ColumnModel.Editing.POST_DATA, columnModel.EditOptions.PostData, jqGridJsonService);
                    }

                    if ((columnModel.EditOptions.HtmlAttributes != null) && (columnModel.EditOptions.HtmlAttributes.Count > 0))
                    {
                        javaScriptBuilder.AppendJavaScriptObjectObjectPropertiesFields(columnModel.EditOptions.HtmlAttributes, jqGridJsonService);
                    }

                    switch (columnModel.EditType)
                    {
                    case JqGridColumnEditTypes.Date:
                        javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DATA_INIT, DATE_DATA_INIT);
                        break;

                    case JqGridColumnEditTypes.DateTimeLocal:
                        javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.Element.DATA_INIT, DATE_TIME_LOCAL_DATA_INIT);
                        break;

                    case JqGridColumnEditTypes.JQueryUIAutocomplete:
                        javaScriptBuilder.AppendColumnModelJQueryUIAutocompleteDataInit(columnModel.EditOptions);
                        break;

                    case JqGridColumnEditTypes.JQueryUIDatepicker:
                        javaScriptBuilder.AppendColumnModelJQueryUIDatepickerDataInit(columnModel.EditOptions, options, asSubgrid);
                        break;

                    case JqGridColumnEditTypes.JQueryUISpinner:
                        javaScriptBuilder.AppendColumnModelJQueryUISpinnerDataInit(columnModel.EditOptions);
                        break;
                    }

                    javaScriptBuilder.AppendColumnModelElementOptions(columnModel.EditOptions, isJQueryUIElement, jqGridJsonService)
                    .AppendJavaScriptObjectFieldClosing();
                }

                javaScriptBuilder.AppendColumnModelRules(JqGridOptionsNames.ColumnModel.EDIT_RULES, columnModel.EditRules)
                .AppendColumnModelFormOptions(columnModel.FormOptions);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendJavaScriptObjectJqGridObjectField(this StringBuilder javaScriptBuilder, string fieldName, object fieldValue, IJqGridJsonService jqGridJsonService)
        {
            if (fieldValue != null)
            {
                javaScriptBuilder.AppendJavaScriptObjectFunctionField(fieldName, jqGridJsonService.SerializeJqGridObject(fieldValue));
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendJavaScriptObjectScriptOrObjectField(this StringBuilder javaScriptBuilder, string fieldName, string fieldScript, object fieldValue, IJqGridJsonService jqGridJsonService)
        {
            if (!String.IsNullOrWhiteSpace(fieldScript))
            {
                javaScriptBuilder.AppendJavaScriptObjectFunctionField(fieldName, fieldScript);
            }
            else if (fieldValue != null)
            {
                javaScriptBuilder.AppendJavaScriptObjectObjectField(fieldName, fieldValue, jqGridJsonService);
            }

            return(javaScriptBuilder);
        }
        private static StringBuilder AppendColumnModelActionsFormatterOptions(this StringBuilder javaScriptBuilder, JqGridColumnFormatterOptions formatterOptions, IJqGridJsonService jqGridJsonService)
        {
            javaScriptBuilder.AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Formatter.KEYS, formatterOptions.Keys, JqGridOptionsDefaults.ColumnModel.Formatter.Keys)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Formatter.EDIT_BUTTON, formatterOptions.EditButton, JqGridOptionsDefaults.ColumnModel.Formatter.EditButton)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Formatter.DELETE_BUTTON, formatterOptions.DeleteButton, JqGridOptionsDefaults.ColumnModel.Formatter.DeleteButton)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.Formatter.USE_FORM_EDITING, formatterOptions.UseFormEditing, JqGridOptionsDefaults.ColumnModel.Formatter.UseFormEditing);

            if (formatterOptions.EditButton)
            {
                if (formatterOptions.UseFormEditing)
                {
                    javaScriptBuilder.AppendNavigatorEditActionOptions(JqGridOptionsNames.ColumnModel.Formatter.EDIT_OPTIONS, formatterOptions.FormEditingOptions, jqGridJsonService);
                }
                else
                {
                    javaScriptBuilder.AppendInlineNavigatorActionOptions(null, formatterOptions.InlineEditingOptions, jqGridJsonService);
                }
            }

            if (formatterOptions.DeleteButton)
            {
                javaScriptBuilder.AppendNavigatorDeleteActionOptions(JqGridOptionsNames.ColumnModel.Formatter.DELETE_OPTIONS, formatterOptions.DeleteOptions, jqGridJsonService);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendNavigatorDeleteActionOptions(this StringBuilder javaScriptBuilder, string fieldName, JqGridNavigatorDeleteActionOptions navigatorDeleteActionOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((navigatorDeleteActionOptions != null) && !navigatorDeleteActionOptions.AreDefault())
            {
                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.Append(",").AppendJavaScriptObjectOpening();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(fieldName);
                }

                javaScriptBuilder.AppendNavigatorModifyActionOptions(navigatorDeleteActionOptions)
                .AppendJavaScriptObjectIntegerField(JqGridOptionsNames.Navigator.WIDTH, navigatorDeleteActionOptions.Width, JqGridOptionsDefaults.Navigator.DeleteActionWidth)
                .AppendJavaScriptObjectObjectField(JqGridOptionsNames.Navigator.AJAX_DELETE_OPTIONS, navigatorDeleteActionOptions.AjaxOptions, jqGridJsonService)
                .AppendJavaScriptObjectScriptOrObjectField(JqGridOptionsNames.Navigator.DELETE_EXTRA_DATA, navigatorDeleteActionOptions.ExtraDataScript, navigatorDeleteActionOptions.ExtraData, jqGridJsonService)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.SERIALIZE_DELETE_DATA, navigatorDeleteActionOptions.SerializeData)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.DELETE_ICON, navigatorDeleteActionOptions.DeleteButtonIcon, JqGridFormButtonIcon.DeleteIcon)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.CANCEL_ICON, navigatorDeleteActionOptions.CancelButtonIcon, JqGridFormButtonIcon.CancelIcon);

                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.AppendJavaScriptObjectClosing();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
                }
            }
            else if (String.IsNullOrWhiteSpace(fieldName))
            {
                javaScriptBuilder.Append(NULL_NAVIGATOR_OPTIONS);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendInlineNavigator(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            if (options.InlineNavigator != null)
            {
                javaScriptBuilder.AppendLine(")")
                .AppendFormat(".jqGrid('inlineNav',{0}", options.GetJqGridPagerSelector(options.Navigator.Pager, asSubgrid))
                .AppendInlineNavigatorOptions(options.InlineNavigator, jqGridJsonService);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendNavigatorEditActionOptions(this StringBuilder javaScriptBuilder, string fieldName, JqGridNavigatorEditActionOptions navigatorEditActionOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((navigatorEditActionOptions != null) && !navigatorEditActionOptions.AreDefault())
            {
                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.Append(",").AppendJavaScriptObjectOpening();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(fieldName);
                }

                if ((navigatorEditActionOptions.SaveKeyEnabled != JqGridOptionsDefaults.Navigator.SaveKeyEnabled) || (navigatorEditActionOptions.SaveKey != JqGridOptionsDefaults.Navigator.SaveKey))
                {
                    javaScriptBuilder.AppendJavaScriptArrayFieldOpening(JqGridOptionsNames.Navigator.SAVE_KEY)
                    .AppendJavaScriptArrayBooleanValue(navigatorEditActionOptions.SaveKeyEnabled)
                    .AppendJavaScriptArrayIntegerValue(navigatorEditActionOptions.SaveKey)
                    .AppendJavaScriptArrayFieldClosing();
                }

                javaScriptBuilder.AppendNavigatorModifyActionOptions(navigatorEditActionOptions)
                .AppendJavaScriptObjectIntegerField(JqGridOptionsNames.Navigator.WIDTH, navigatorEditActionOptions.Width, JqGridOptionsDefaults.Navigator.EditActionWidth)
                .AppendJavaScriptObjectObjectField(JqGridOptionsNames.Navigator.AJAX_EDIT_OPTIONS, navigatorEditActionOptions.AjaxOptions, jqGridJsonService)
                .AppendJavaScriptObjectScriptOrObjectField(JqGridOptionsNames.Navigator.EDIT_EXTRA_DATA, navigatorEditActionOptions.ExtraDataScript, navigatorEditActionOptions.ExtraData, jqGridJsonService)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.SERIALIZE_EDIT_DATA, navigatorEditActionOptions.SerializeData)
                .AppendJavaScriptObjectEnumField(JqGridOptionsNames.Navigator.ADDED_ROW_POSITION, navigatorEditActionOptions.AddedRowPosition, JqGridOptionsDefaults.Navigator.AddedRowPosition)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.AFTER_CLICK_PG_BUTTONS, navigatorEditActionOptions.AfterClickPgButtons)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.AFTER_COMPLETE, navigatorEditActionOptions.AfterComplete)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.BEFORE_CHECK_VALUES, navigatorEditActionOptions.BeforeCheckValues)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.BOTTOM_INFO, navigatorEditActionOptions.BottomInfo)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CHECK_ON_SUBMIT, navigatorEditActionOptions.CheckOnSubmit, JqGridOptionsDefaults.Navigator.CheckOnSubmit)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CHECK_ON_UPDATE, navigatorEditActionOptions.CheckOnUpdate, JqGridOptionsDefaults.Navigator.CheckOnUpdate)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLEAR_AFTER_ADD, navigatorEditActionOptions.ClearAfterAdd, JqGridOptionsDefaults.Navigator.ClearAfterAdd)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLOSE_AFTER_ADD, navigatorEditActionOptions.CloseAfterAdd, JqGridOptionsDefaults.Navigator.CloseAfterAdd)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLOSE_AFTER_EDIT, navigatorEditActionOptions.CloseAfterEdit, JqGridOptionsDefaults.Navigator.CloseAfterEdit)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.CLOSE_ICON, navigatorEditActionOptions.CloseButtonIcon, JqGridFormButtonIcon.CloseIcon)
                .AppendNavigatorPageableFormActionOptions(navigatorEditActionOptions)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.ON_CLICK_PG_BUTTONS, navigatorEditActionOptions.OnClickPgButtons)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.ON_INITIALIZE_FORM, navigatorEditActionOptions.OnInitializeForm)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.SAVE_ICON, navigatorEditActionOptions.SaveButtonIcon, JqGridFormButtonIcon.SaveIcon)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.TOP_INFO, navigatorEditActionOptions.TopInfo);

                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.AppendJavaScriptObjectClosing();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
                }
            }
            else if (String.IsNullOrWhiteSpace(fieldName))
            {
                javaScriptBuilder.Append(NULL_NAVIGATOR_OPTIONS);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendNavigator(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            if (options.Navigator != null)
            {
                string jqGridPagerSelector = options.GetJqGridPagerSelector(options.Navigator.Pager, asSubgrid);

                javaScriptBuilder.AppendLine(")")
                .AppendFormat(".jqGrid('navGrid',{0}", jqGridPagerSelector)
                .AppendNavigatorOptions(options.Navigator)
                .AppendNavigatorEditActionOptions(null, options.Navigator.EditOptions, jqGridJsonService)
                .AppendNavigatorEditActionOptions(null, options.Navigator.AddOptions, jqGridJsonService)
                .AppendNavigatorDeleteActionOptions(null, options.Navigator.DeleteOptions, jqGridJsonService)
                .AppendNavigatorSearchActionOptions(options.Navigator.SearchOptions)
                .AppendNavigatorViewActionOptions(options.Navigator.ViewOptions)
                .AppendNavigatorLeadingCustomElements(jqGridPagerSelector, options.Navigator.LeadingCustomElements)
                .AppendNavigatorTrailingCustomElements(jqGridPagerSelector, options.Navigator.TrailingCustomElements);
            }

            return(javaScriptBuilder);
        }
        private static StringBuilder AppendSubgridAsGridRowExpanded(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService)
        {
            javaScriptBuilder.AppendFormat("{0}: function (subgridId, rowId) {{", JqGridOptionsNames.SUBGRID_ROW_EXPANDED)
            .Append("var $subgridContainer = jQuery('#' + subgridId);")
            .AppendFormat("var {0} = jQuery('<table></table').attr('id', subgridId + '_t');", SUBGRID_VARIABLE)
            .AppendFormat("$subgridContainer.append({0});", SUBGRID_VARIABLE);

            if (options.SubgridOptions.Pager)
            {
                javaScriptBuilder.AppendFormat("var $subgridPager = jQuery('<div></div>').attr('id', {0});", SUBGRID_PAGER_ID)
                .Append("$subgridContainer.append($subgridPager);");
            }

            javaScriptBuilder.Append(SUBGRID_VARIABLE)
            .AppendJqGridScript(options.SubgridOptions, jqGridJsonService, true)
            .Append("},");

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendSubgrid(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService)
        {
            if (options.SubgridEnabled && (options.SubgridOptions != null))
            {
                javaScriptBuilder.AppendCoreSubgridOptions(options)
                .AppendSubgridAsGridRowExpanded(options, jqGridJsonService);
            }
            else if (options.SubgridEnabled && !String.IsNullOrWhiteSpace(options.SubgridUrl) && (options.SubgridModel != null))
            {
                javaScriptBuilder.AppendCoreSubgridOptions(options)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.SUBGRID_ROW_EXPANDED, options.SubGridRowExpanded)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.SUBGRID_ULR, options.SubgridUrl)
                .AppendJavaScriptArrayFieldOpening(JqGridOptionsNames.SUBGRID_MODEL)
                .AppendJavaScriptObjectOpening()
                .AppendJavaScriptObjectStringArrayField(JqGridOptionsNames.SubgridModel.NAMES, options.SubgridModel.ColumnsModels.Select(c => c.Name))
                .AppendJavaScriptObjectIntegerArrayField(JqGridOptionsNames.SubgridModel.WIDTHS, options.SubgridModel.ColumnsModels.Select(c => c.Width))
                .AppendJavaScriptObjectEnumArrayField(JqGridOptionsNames.SubgridModel.ALIGNMENTS, options.SubgridModel.ColumnsModels.Select(c => c.Alignment))
                .AppendJavaScriptObjectStringArrayField(JqGridOptionsNames.SubgridModel.MAPPINGS, options.SubgridModel.ColumnsModels.Select(c => c.Mapping))
                .AppendJavaScriptObjectStringArrayField(JqGridOptionsNames.SubgridModel.PARAMETERS, options.SubgridModel.Parameters)
                .AppendJavaScriptObjectFieldClosing()
                .AppendJavaScriptArrayFieldClosing();
            }
            else if (options.SubgridEnabled && !String.IsNullOrWhiteSpace(options.SubGridRowExpanded))
            {
                javaScriptBuilder.AppendCoreSubgridOptions(options)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.SUBGRID_ROW_EXPANDED, options.SubGridRowExpanded);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendJavaScriptArrayObjectValue(this StringBuilder javaScriptBuilder, object value, IJqGridJsonService jqGridJsonService)
        {
            if (value != null)
            {
                javaScriptBuilder.AppendJavaScriptArrayFunctionValue(jqGridJsonService.SerializeObject(value));
            }

            return(javaScriptBuilder);
        }
        private static StringBuilder AppendColumnModelFormatterOptions(this StringBuilder javaScriptBuilder, string formatter, JqGridColumnFormatterOptions formatterOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((formatterOptions != null) && !formatterOptions.AreDefault(formatter))
            {
                javaScriptBuilder.AppendJavaScriptObjectFieldOpening(JqGridOptionsNames.ColumnModel.FORMATTER_OPTIONS);

                switch (formatter)
                {
                case JqGridPredefinedFormatters.Integer:
                    javaScriptBuilder.AppendColumnModelIntegerFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.Number:
                    javaScriptBuilder.AppendColumnModelNumberFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.Currency:
                    javaScriptBuilder.AppendColumnModelCurrencyFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.Date:
                    javaScriptBuilder.AppendColumnModelDateFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.Link:
                    javaScriptBuilder.AppendColumnModelLinkFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.ShowLink:
                    javaScriptBuilder.AppendColumnModelShowLinkFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.CheckBox:
                    javaScriptBuilder.AppendColumnModelCheckBoxFormatterOptions(formatterOptions);
                    break;

                case JqGridPredefinedFormatters.Actions:
                    javaScriptBuilder.AppendColumnModelActionsFormatterOptions(formatterOptions, jqGridJsonService);
                    break;
                }

                javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendColumnsModels(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            javaScriptBuilder.AppendJavaScriptArrayFieldOpening(JqGridOptionsNames.COLUMNS_MODEL_FIELD);

            foreach (JqGridColumnModel columnModel in options.ColumnsModels)
            {
                javaScriptBuilder.AppendJavaScriptObjectOpening()
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.NAME, columnModel.Name)
                .AppendJavaScriptObjectEnumField(JqGridOptionsNames.ColumnModel.ALIGNMENT, columnModel.Alignment, JqGridOptionsDefaults.ColumnModel.Alignment)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ColumnModel.CELL_ATTRIBUTES, columnModel.CellAttributes)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.CLASSES, columnModel.Classes)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.FIXED, columnModel.Fixed, JqGridOptionsDefaults.ColumnModel.Fixed)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.FROZEN, columnModel.Frozen, JqGridOptionsDefaults.ColumnModel.Frozen)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.HIDE_IN_DIALOG, columnModel.HideInDialog, JqGridOptionsDefaults.ColumnModel.HideInDialog)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.HIDDEN, columnModel.Hidden, JqGridOptionsDefaults.ColumnModel.Hidden)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.JSON_MAP, columnModel.JsonMapping)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.KEY, columnModel.Key, JqGridOptionsDefaults.ColumnModel.Key)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.RESIZABLE, columnModel.Resizable, JqGridOptionsDefaults.ColumnModel.Resizable)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.TITLE, columnModel.Title, JqGridOptionsDefaults.ColumnModel.Title)
                .AppendJavaScriptObjectIntegerField(JqGridOptionsNames.ColumnModel.WIDTH, columnModel.Width, JqGridOptionsDefaults.ColumnModel.Width)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.ColumnModel.XML_MAP, columnModel.XmlMapping)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.ColumnModel.VIEWABLE, columnModel.Viewable, JqGridOptionsDefaults.ColumnModel.Viewable)
                .AppendColumnModelEditOptions(columnModel, options, jqGridJsonService, asSubgrid)
                .AppendColumnModelSearchOptions(columnModel, options, jqGridJsonService, asSubgrid)
                .AppendColumnModelSortOptions(columnModel)
                .AppendColumnModelSummaryOptions(columnModel, options)
                .AppendColumnModelFormatter(columnModel, jqGridJsonService);

                javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
            }

            javaScriptBuilder.AppendJavaScriptArrayFieldClosing()
            .AppendLine();

            return(javaScriptBuilder);
        }
示例#20
0
        private static StringBuilder AppendPostData(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService)
        {
            if (!String.IsNullOrWhiteSpace(options.PostDataScript))
            {
                javaScriptBuilder.AppendJavaScriptObjectFunctionField(JqGridOptionsNames.POST_DATA, options.PostDataScript);
            }
            else if (options.PostData != null)
            {
                javaScriptBuilder.AppendJavaScriptObjectJqGridObjectField(JqGridOptionsNames.POST_DATA, options.PostData, jqGridJsonService);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendInlineNavigatorOptions(this StringBuilder javaScriptBuilder, JqGridInlineNavigatorOptions inlineNavigatorOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((inlineNavigatorOptions != null) && !inlineNavigatorOptions.AreDefault())
            {
                javaScriptBuilder.Append(",")
                .AppendJavaScriptObjectOpening()
                .AppendBaseNavigatorOptions(inlineNavigatorOptions)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.SAVE, inlineNavigatorOptions.Save, JqGridOptionsDefaults.Navigator.Save)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.SAVE_ICON, inlineNavigatorOptions.SaveIcon, JqGridOptionsDefaults.Navigator.SaveIcon)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.SAVE_TEXT, inlineNavigatorOptions.SaveText)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.SAVE_TITLE, inlineNavigatorOptions.SaveToolTip, JqGridOptionsDefaults.Navigator.SaveToolTip)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CANCEL, inlineNavigatorOptions.Cancel, JqGridOptionsDefaults.Navigator.Cancel)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.CANCEL_ICON, inlineNavigatorOptions.CancelIcon, JqGridOptionsDefaults.Navigator.CancelIcon)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.CANCEL_TEXT, inlineNavigatorOptions.CancelText)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.CANCEL_TITLE, inlineNavigatorOptions.CancelToolTip, JqGridOptionsDefaults.Navigator.CancelToolTip)
                .AppendInlineNavigatorActionOptions(JqGridOptionsNames.Navigator.EDIT_PARAMETERS, inlineNavigatorOptions.ActionOptions, jqGridJsonService)
                .AppendInlineNavigatorAddActionOptions(inlineNavigatorOptions.AddActionOptions, jqGridJsonService)
                .AppendJavaScriptObjectClosing();
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendJavaScriptObjectObjectPropertiesFields(this StringBuilder javaScriptBuilder, object fieldValue, IJqGridJsonService jqGridJsonService)
        {
            if (fieldValue != null)
            {
                string serializedFieldValue = jqGridJsonService.SerializeObject(fieldValue);
                javaScriptBuilder.Append(serializedFieldValue.Substring(1, serializedFieldValue.Length - 2)).Append(",");
            }

            return(javaScriptBuilder);
        }
示例#23
0
        internal static StringBuilder AppendOptions(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            javaScriptBuilder.AppendJavaScriptObjectStringField(JqGridOptionsNames.CAPTION, options.Caption)
            .AppendCellEditing(options)
            .AppendJavaScriptObjectStringField(JqGridOptionsNames.EDITITNG_URL, options.EditingUrl)
            .AppendJavaScriptObjectEnumField(JqGridOptionsNames.DATA_TYPE, options.DataType, JqGridOptionsDefaults.DataType)
            .AppendDataSource(options, asSubgrid)
            .AppendStyling(options)
            .AppendIconSet(options)
            .AppendGrouping(options)
            .AppendParametersNames(options.ParametersNames)
            .AppendPostData(options, jqGridJsonService)
            .AppendJsonReader(options.JsonReader)
            .AppendPager(options, asSubgrid)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.TOP_PAGER, options.TopPager, JqGridOptionsDefaults.TopPager)
            .AppendSubgrid(options, jqGridJsonService)
            .AppendTreeGrid(options)
            .AppendDynamicScrolling(options)
            .AppendJavaScriptObjectStringField(JqGridOptionsNames.SORTING_NAME, options.SortingName)
            .AppendJavaScriptObjectEnumField(JqGridOptionsNames.SORTING_ORDER, options.SortingOrder, JqGridOptionsDefaults.SortingOrder)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.REQUEST_INITIAL_SERVER_SEARCHING, options.RequestInitialServerSearching, JqGridOptionsDefaults.RequestInitialServerSearching)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.FOOTER_ENABLED, options.FooterEnabled, JqGridOptionsDefaults.FooterEnabled)
            .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.USER_DATA_ON_FOOTER, options.UserDataOnFooter, JqGridOptionsDefaults.UserDataOnFooter)
            .AppendJavaScriptObjectIntegerField(JqGridOptionsNames.HEIGHT, options.Height)
            .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.ON_SELECT_ROW, options.OnSelectRow)
            .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.GRID_COMPLETE, options.GridComplete)
            .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.LOAD_COMPLETE, options.LoadComplete);

            if (!options.Height.HasValue)
            {
                javaScriptBuilder.AppendJavaScriptObjectStringField(JqGridOptionsNames.HEIGHT, JqGridOptionsDefaults.Height);
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendInlineNavigatorActionOptions(this StringBuilder javaScriptBuilder, string fieldName, JqGridInlineNavigatorActionOptions inlineNavigatorActionOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((inlineNavigatorActionOptions != null) && !inlineNavigatorActionOptions.AreDefault())
            {
                if (!String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(fieldName);
                }

                javaScriptBuilder.AppendJavaScriptObjectScriptOrObjectField(JqGridOptionsNames.InlineNavigator.EXTRA_PARAM, inlineNavigatorActionOptions.ExtraParamScript, inlineNavigatorActionOptions.ExtraParam, jqGridJsonService)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.InlineNavigator.KEYS, inlineNavigatorActionOptions.Keys, JqGridOptionsDefaults.Navigator.InlineActionKeys)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.InlineNavigator.ON_EDIT_FUNCTION, inlineNavigatorActionOptions.OnEditFunction)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.InlineNavigator.SUCCESS_FUNCTION, inlineNavigatorActionOptions.SuccessFunction)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.InlineNavigator.URL, inlineNavigatorActionOptions.Url)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.InlineNavigator.AFTER_SAVE_FUNCTION, inlineNavigatorActionOptions.AfterSaveFunction)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.InlineNavigator.ERROR_FUNCTION, inlineNavigatorActionOptions.ErrorFunction)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.InlineNavigator.AFTER_RESTORE_FUNCTION, inlineNavigatorActionOptions.AfterRestoreFunction)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.InlineNavigator.RESTORE_AFTER_ERROR, inlineNavigatorActionOptions.RestoreAfterError, JqGridOptionsDefaults.Navigator.InlineActionRestoreAfterError)
                .AppendJavaScriptObjectEnumField(JqGridOptionsNames.InlineNavigator.METHOD_TYPE, inlineNavigatorActionOptions.MethodType, JqGridOptionsDefaults.Navigator.InlineActionMethodType);

                if (!String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
                }
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendInlineNavigatorAddActionOptions(this StringBuilder javaScriptBuilder, JqGridInlineNavigatorAddActionOptions inlineNavigatorAddActionOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((inlineNavigatorAddActionOptions != null) && !inlineNavigatorAddActionOptions.AreDefault())
            {
                javaScriptBuilder.AppendJavaScriptObjectFieldOpening(JqGridOptionsNames.Navigator.ADD_PARAMETERS)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.ROW_ID, inlineNavigatorAddActionOptions.RowId, JqGridOptionsDefaults.Navigator.NewRowId)
                .AppendJavaScriptObjectObjectField(JqGridOptionsNames.Navigator.INIT_DATA, inlineNavigatorAddActionOptions.InitData, jqGridJsonService)
                .AppendJavaScriptObjectEnumField(JqGridOptionsNames.Navigator.POSITION, inlineNavigatorAddActionOptions.NewRowPosition, JqGridOptionsDefaults.Navigator.NewRowPosition)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.USE_DEFAULT_VALUES, inlineNavigatorAddActionOptions.UseDefaultValues, JqGridOptionsDefaults.Navigator.UseDefaultValues)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.USE_FORMATTER, inlineNavigatorAddActionOptions.UseFormatter, JqGridOptionsDefaults.Navigator.UseFormatter)
                .AppendInlineNavigatorActionOptions(JqGridOptionsNames.Navigator.ADD_ROW_PARAMETERS, inlineNavigatorAddActionOptions, jqGridJsonService)
                .AppendJavaScriptObjectFieldClosing();
            }

            return(javaScriptBuilder);
        }
        internal static StringBuilder AppendJqGridScript(this StringBuilder javaScriptBuilder, JqGridOptions options, IJqGridJsonService jqGridJsonService, bool asSubgrid)
        {
            javaScriptBuilder.Append(".jqGrid({").AppendLine()
            .AppendJavaScriptObjectStringArrayField(JqGridOptionsNames.COLUMNS_NAMES_FIELD, options.ColumnsNames)
            .AppendColumnsModels(options, jqGridJsonService, asSubgrid)
            .AppendOptions(options, jqGridJsonService, asSubgrid)
            .AppendJavaScriptObjectClosing()
            .AppendHeaderGrouping(options)
            .AppendFooterData(options)
            .AppendFilterToolbar(options.FilterToolbar)
            .AppendNavigator(options, jqGridJsonService, asSubgrid)
            .AppendInlineNavigator(options, jqGridJsonService, asSubgrid)
            .AppendLine(");");

            return(javaScriptBuilder);
        }