Exemplo n.º 1
0
    private static MvcHtmlString EnhancedField <TModel, TValue>(this HtmlHelper <TModel> htmlHelper,
                                                                Expression <Func <TModel, TValue> > expression, MvcHtmlString inputString,
                                                                string note = null, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, bool checkIsRequired = true)
    {
        MvcHtmlString labelString             = htmlHelper.EnhancedLabelFor(expression, checkIsRequired: checkIsRequired);
        MvcHtmlString validationMessageString = htmlHelper.ValidationMessageFor(expression);

        return(CreateField(inputString.ToString(), note, labelString.ToString(), validationMessageString.ToString(),
                           fieldGroupingSetting));
    }
        private static MvcHtmlString EnhancedField(this HtmlHelper htmlHelper, string caption, string inputString = "",
                                                   string note        = "", string validationMessageString = "",
                                                   bool isRequired    = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth,
                                                   int valueCellCount = 1)
        {
            var tag = new TagBuilder("label");

            tag.SetInnerText(caption);

            if (isRequired)
            {
                tag.AddCssClass("reqLabel");
            }
            tag.AddCssClass("fieldLabel");
            tag.InnerHtml = string.Concat(tag.InnerHtml);

            return(CreateField(inputString, note, tag.ToString(), validationMessageString, fieldGroupingSetting,
                               valueCellCount));
        }
Exemplo n.º 3
0
    private static MvcHtmlString CreateField(string inputString, string note, string labelString,
                                             string validationMessageString,
                                             FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, int valueCellCount = 1)
    {
        string noteString = string.Empty;

        if (!string.IsNullOrWhiteSpace(note))
        {
            noteString = string.Format(noteTemplate, note);
        }
        string fieldTemplate =
            (fieldGroupingSetting.HasFlag(FieldGroupingSetting.CloseStart) ? fieldOpenning : string.Empty) +
            fieldContent +
            (fieldGroupingSetting.HasFlag(FieldGroupingSetting.CloseEnd) ? fieldClosing : string.Empty);
        string htmlString = string.Format(fieldTemplate, labelString, inputString, validationMessageString,
                                          noteString, valueCellCount);

        return(MvcHtmlString.Create(htmlString));
    }
        public static MvcHtmlString EnhancedField <TValue>(this HtmlHelper htmlHelper, string caption, TValue value,
                                                           string note        = "",
                                                           bool isRequired    = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth,
                                                           int valueCellCount = 1)
        {
            Type   valueType   = typeof(TValue);
            string stringValue = null;

            if (valueType.IsGenericType &&
                valueType.GetGenericTypeDefinition() == typeof(Nullable <>) &&
                Nullable.GetUnderlyingType(valueType).IsEnum&&
                value != null)
            {
                stringValue = EnumMetadataFactory.GetCaption(value);
            }
            else if (valueType.IsEnum)
            {
                stringValue = EnumMetadataFactory.GetCaption(value);
            }
            else
            {
                stringValue = value == null ? string.Empty : value.ToString();
            }
            return(htmlHelper.EnhancedField(
                       caption,
                       stringValue,
                       note,
                       string.Empty,
                       isRequired,
                       fieldGroupingSetting,
                       valueCellCount));
        }
        public static MvcHtmlString EnhancedReadnlyField <TModel, TValue>(this HtmlHelper <TModel> htmlHelper,
                                                                          Expression <Func <TModel, TValue> > expression, string note = "",
                                                                          bool isRequired = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth)
        {
            ModelMetadata metadata      = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            string        htmlFieldName = ExpressionHelper.GetExpressionText(expression);

            string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last();

            return(htmlHelper.EnhancedField(
                       labelText,
                       (TValue)metadata.Model,
                       note,
                       isRequired,
                       fieldGroupingSetting));
        }