Exemple #1
0
        public DatePicker.DatePickerBuilder DatePickerFor <TProperty>(Expression <Func <TModel, TProperty> > expression, IDictionary <string, object> htmlAttributes)
        {
            ViewDataDictionary <TModel> viewData = new ViewDataDictionary <TModel>(HtmlHelper.ViewData);
            ModelMetadata metadata      = ModelMetadata.FromLambdaExpression(expression, viewData);
            string        htmlFieldName = ExpressionHelper.GetExpressionText(expression);

            string labelText = metadata.DisplayName;

            if (labelText == null)
            {
                labelText = BsHelper.SplitCamelCase(metadata.PropertyName ?? htmlFieldName.Split('.').Last());
            }

            // add a placeholder if it isn't already there
            if (!String.IsNullOrEmpty(labelText))
            {
                if (!htmlAttributes.ContainsKey("placeholder"))
                {
                    htmlAttributes["placeholder"] = "{placeholder}";
                }
            }

            // add form-control
            if (htmlAttributes.ContainsKey("class"))
            {
                htmlAttributes["class"] += " form-control date";
            }
            else
            {
                htmlAttributes["class"] = "form-control date";
            }


            DateTime?dtval = null;
            string   val   = HtmlHelper.ValueFor <TModel, TProperty>(expression).ToString();
            string   input = HtmlHelper.TextBoxFor(expression, htmlAttributes).ToString();

            if (val.Length > 0)
            {
                input = input.Replace(val, "{value}");
                DateTime temp;
                if (DateTime.TryParse(val, out temp))
                {
                    dtval = temp;
                }
            }


            DatePicker.DatePicker component = new DatePicker.DatePicker(htmlFieldName);
            component.DisplayName = labelText;

            DatePickerBuilder builder = new DatePickerBuilder(component, input, dtval);

            return(builder);
        }
 public DatePickerBuilder(DatePicker component, string input, DateTime? value)
 {
     this.Component = component;
     this.Input = input;
     this.Value = value;
 }