Example #1
0
        public static MvcHtmlString BallyGrid <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, string valueMember, string GridDataColumnDefinitionName, IDictionary <string, object> gridParam = null, string hiddenColumns = "", string actionUrl = "", StylePropertyBag style = null, short tabIndex = 0, int pageSize = 10, int gridHeight = 400, bool enableFilter = false, bool enableSorting = false, bool enableExport = false, bool pagination = true, bool serverPagination = false, bool selectOption = true, string defaultSortField = "", string imageSizeClass = "", string statusProperty = "", string onDataRowSelectFunction = "", string onDataRowSelectionChangeFunctionName = "", string cssClass = "")
        {
            string propertyName      = string.Empty;
            string modelName         = string.Empty;
            object value             = string.Empty;
            string errMsg            = string.Empty;
            string controlHtmlString = string.Empty;
            string configKey         = string.Empty;
            Dictionary <string, string> overrideSettings;
            GridHTMLEmitter             controlHtmlEmitter;

            ControlExtension.GetPropertyNameAndValue <TModel, TProperty>(htmlHelper, expression, out propertyName, out modelName, out value, out errMsg, out configKey);

            overrideSettings = GetGridOverrideSettings(valueMember, actionUrl, style, tabIndex, onDataRowSelectFunction, onDataRowSelectionChangeFunctionName, value, GridDataColumnDefinitionName, hiddenColumns, pageSize, gridHeight, enableFilter, enableSorting, enableExport, pagination, serverPagination, selectOption, defaultSortField, imageSizeClass, statusProperty, cssClass);

            FillerParams fillerParams = new FillerParams(modelName, propertyName, overrideSettings, inputParam: gridParam, configKey: configKey);

            var fillers            = ControlPropertyFillerFactory.Get();
            var controlPropertyBag = new GridPropertyBag(fillerParams);

            controlPropertyBag.Accept(fillers);
            controlPropertyBag.ErrorMessage = errMsg;
            controlPropertyBag.IsDirty      = string.IsNullOrEmpty(errMsg) ? false : true;
            controlHtmlEmitter = new GridHTMLEmitter(value != null ? value.ToString() : string.Empty, controlPropertyBag);

            controlHtmlEmitter.Emit(out controlHtmlString);
            return(MvcHtmlString.Create(controlHtmlString));
        }