private static JqGridColumnModel CreateJqGridColumnModel(ModelMetadata columnMetadata, IUrlHelper urlHelper) { JqGridColumnModel columnModel = new JqGridColumnModel(columnMetadata.PropertyName); TimestampAttribute timeStampAttribute = null; RangeAttribute rangeAttribute = null; RequiredAttribute requiredAttribute = null; JqGridColumnLayoutAttribute jqGridColumnLayoutAttribute = null; JqGridColumnSortableAttribute jqGridColumnSortableAttribute = null; JqGridColumnFormatterAttribute jqGridColumnFormatterAttribute = null; JqGridColumnSearchableAttribute jqGridColumnSearchableAttribute = null; JqGridColumnEditableAttribute jqGridColumnEditableAttribute = null; JqGridColumnSummaryAttribute jqGridColumnSummaryAttribute = null; JqGridColumnMappingAttribute jqGridColumnMappingAttribute = null; foreach (Attribute customAttribute in columnMetadata.ContainerType.GetProperty(columnMetadata.PropertyName).GetCustomAttributes(true)) { timeStampAttribute = (customAttribute as TimestampAttribute) ?? timeStampAttribute; rangeAttribute = (customAttribute as RangeAttribute) ?? rangeAttribute; requiredAttribute = (customAttribute as RequiredAttribute) ?? requiredAttribute; jqGridColumnLayoutAttribute = (customAttribute as JqGridColumnLayoutAttribute) ?? jqGridColumnLayoutAttribute; jqGridColumnSortableAttribute = (customAttribute as JqGridColumnSortableAttribute) ?? jqGridColumnSortableAttribute; jqGridColumnFormatterAttribute = (customAttribute as JqGridColumnFormatterAttribute) ?? jqGridColumnFormatterAttribute; jqGridColumnSearchableAttribute = (customAttribute as JqGridColumnSearchableAttribute) ?? jqGridColumnSearchableAttribute; jqGridColumnEditableAttribute = (customAttribute as JqGridColumnEditableAttribute) ?? jqGridColumnEditableAttribute; jqGridColumnSummaryAttribute = (customAttribute as JqGridColumnSummaryAttribute) ?? jqGridColumnSummaryAttribute; jqGridColumnMappingAttribute = (customAttribute as JqGridColumnMappingAttribute) ?? jqGridColumnMappingAttribute; } if (timeStampAttribute != null) { columnModel.Editable = true; columnModel.Hidden = true; } else { columnModel = SetLayoutOptions(columnModel, jqGridColumnLayoutAttribute); columnModel = SetSortOptions(columnModel, jqGridColumnSortableAttribute); columnModel = SetFormatterOptions(columnModel, jqGridColumnFormatterAttribute); columnModel = SetSearchOptions(columnModel, urlHelper, columnMetadata.ModelType, jqGridColumnSearchableAttribute, rangeAttribute); columnModel = SetEditOptions(columnModel, urlHelper, columnMetadata.ModelType, jqGridColumnEditableAttribute, rangeAttribute, requiredAttribute); columnModel = SetDatePickerDateFormatFromFormatter(columnModel, jqGridColumnFormatterAttribute); columnModel = SetSummaryOptions(columnModel, jqGridColumnSummaryAttribute); columnModel = SetMappingOptions(columnModel, jqGridColumnMappingAttribute); } return(columnModel); }
private static JqGridColumnModel SetEditOptions(JqGridColumnModel columnModel, IUrlHelper urlHelper, Type modelType, JqGridColumnEditableAttribute jqGridColumnEditableAttribute, RangeAttribute rangeAttribute, RequiredAttribute requiredAttribute) { if (jqGridColumnEditableAttribute != null) { columnModel.DateFormat = jqGridColumnEditableAttribute.DateFormat; columnModel.Editable = jqGridColumnEditableAttribute.Editable; columnModel.EditOptions = GetElementOptions(jqGridColumnEditableAttribute.EditOptions, urlHelper, jqGridColumnEditableAttribute); columnModel.EditOptions.PostData = jqGridColumnEditableAttribute.PostData; columnModel.EditRules = GetRules(modelType, jqGridColumnEditableAttribute, rangeAttribute, requiredAttribute); columnModel.EditType = jqGridColumnEditableAttribute.EditType; columnModel.FormOptions = jqGridColumnEditableAttribute.FormOptions; } return(columnModel); }