public static MvcHtmlString LayTable <TModel>(this HtmlHelper htmlHelper, TModel model) where TModel : LayTable { //< table id = "demo" lay - filter = "test" ></ table > TagBuilder tagBuilder = new TagBuilder("table"); tagBuilder.MergeAttribute("id", model.ControlId); tagBuilder.MergeAttribute("layui", ""); var mainOption = LayHtmlHelper.GetAttributtes(model); List <IDictionary <string, object> > arr = new List <IDictionary <string, object> >(); foreach (var item in model.GetType().GetProperties()) { var attr = LayHtmlHelper.GetPropertyAttributte <LayColumnAttribute>(item); if (attr != null) { if (attr.Field == null) { attr.Field = item.Name; } arr.Add(LayHtmlHelper.GetAttributtes(attr)); } } mainOption.Add("cols", new object[] { arr }); tagBuilder.MergeAttribute("lay-options", JsonHelper.Instance.Serialize(mainOption)); return(new MvcHtmlString(tagBuilder.ToString())); }
/// <summary> /// 返回一个 HTML label 元素以及由指定表达式表示的属性的属性名称 /// </summary> /// <typeparam name="TModel"> 模型的类型。</typeparam> /// <typeparam name="TValue"> 值的类型。</typeparam> /// <param name="html">此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression">一个表达式,用于标识要显示的属性。</param> /// <param name="labelText"> 要显示的标签文本。</param> /// <param name="htmlAttributes"> 一个对象,其中包含要为该元素设置的 HTML 特性。</param> /// <returns> 一个 HTML label 元素以及由表达式表示的属性的属性名称。</returns> public static MvcHtmlString LayLabelFor <TModel, TValue>(this HtmlHelper <TModel> html, Expression <Func <TModel, TValue> > expression, string labelText, object htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(html.LabelFor(expression, labelText, attrs)); }
/// <summary> /// 返回一个 HTML label 元素以及由指定表达式表示的属性的属性名称 /// </summary> /// <typeparam name="TModel"> 模型的类型。</typeparam> /// <typeparam name="TValue"> 值的类型。</typeparam> /// <param name="html">此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression">一个表达式,用于标识要显示的属性。</param> /// <returns> 一个 HTML label 元素以及由表达式表示的属性的属性名称。</returns> public static MvcHtmlString LayLabelFor <TModel, TValue>(this HtmlHelper <TModel> html, Expression <Func <TModel, TValue> > expression) { var attrs = LayHtmlHelper.AddLayUIClass(classStr); return(html.LabelFor(expression, attrs)); }
/// <summary> /// 返回一个 HTML label 元素以及由指定表达式表示的属性的属性名称 /// </summary> /// <param name="html">此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression">一个表达式,用于标识要显示的属性。</param> /// <param name="labelText"> 要显示的标签文本。</param> /// <param name="htmlAttributes"> 一个对象,其中包含要为该元素设置的 HTML 特性。</param> /// <returns> 一个 HTML label 元素以及由表达式表示的属性的属性名称。</returns> public static MvcHtmlString LayLabel(this HtmlHelper html, string expression, string labelText, IDictionary <string, object> htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(html.Label(expression, labelText, attrs)); }
/// <summary> /// 返回一个 HTML label 元素以及由指定表达式表示的属性的属性名称 /// </summary> /// <param name="html">此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression">一个表达式,用于标识要显示的属性。</param> /// <param name="htmlAttributes"> 一个对象,其中包含要为该元素设置的 HTML 特性。</param> /// <returns> 一个 HTML label 元素以及由表达式表示的属性的属性名称。</returns> public static MvcHtmlString LayLabel(this HtmlHelper html, string expression, object htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(html.Label(expression, attrs)); }
/// <summary> /// 返回一个 HTML label 元素以及由指定表达式表示的属性的属性名称 /// </summary> /// <param name="html">此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression">一个表达式,用于标识要显示的属性。</param> /// <param name="labelText"> 要显示的标签文本。</param> /// <returns> 一个 HTML label 元素以及由表达式表示的属性的属性名称。</returns> public static MvcHtmlString LayLabel(this HtmlHelper html, string expression, string labelText) { var attrs = LayHtmlHelper.AddLayUIClass(classStr); return(html.Label(expression, labelText, attrs)); }
/// <summary> /// 一个控件 /// </summary> /// <typeparam name="TModel"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="htmlHelper"></param> /// <param name="expression"></param> /// <param name="attrs"></param> /// <returns></returns> public static MvcHtmlString LayInputFor <TModel, TResult>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TResult> > expression, object attrs = null) where TModel : new() { var model = htmlHelper.ViewData.Model == null ? new TModel() : htmlHelper.ViewData.Model; var value = model == null ? default(TResult) : expression.Compile()(model); var member = expression.Body as MemberExpression; var proname = ""; if (member != null) { proname = member.Member.Name; } else { throw new ArgumentException( "'" + expression + "': is not a valid expression for this method"); } //字段类型 var propInfo = model.GetType().GetProperty(proname); var inputModel = LayHtmlHelper.GetPropertyAttributte <InputAttribute>(propInfo) ?? new InputAttribute(); var des = LayHtmlHelper.GetPropertyAttributte <DescriptionAttribute>(propInfo); var attrDic = LayHtmlHelper.GetAttributtes(inputModel); if (attrs != null) { attrDic.Merge(attrs.ToDictionary(), true); } //判断是否有name属性 if (!attrDic.ContainsKey("name")) { attrDic.Add("name", proname); } //id 属性 if (!attrDic.ContainsKey("id")) { attrDic.Add("id", proname); } //LayFilter if (!attrDic.ContainsKey("LayFilter")) { attrDic.Add("LayFilter", proname); } TagBuilder tagBuilder = new TagBuilder("input"); tagBuilder.MergeAttributes(attrDic); var mainHtml = new TagBuilder("div"); mainHtml.AddCssClass("layui-form-item"); var lab = new TagBuilder("label"); lab.AddCssClass("layui-form-label"); lab.InnerHtml = des == null ? "" : des.Description; var div2 = new TagBuilder("div"); if (inputModel.DisplayType == DisplayType.block) { div2.AddCssClass("layui-input-block"); } if (inputModel.DisplayType == DisplayType.inline) { div2.AddCssClass("layui-input-inline"); } div2.InnerHtml = tagBuilder.ToString(); mainHtml.InnerHtml = lab.ToString() + div2.ToString(); return(new MvcHtmlString(mainHtml.ToString())); /* * < div class="layui-form-item"> * <label class="layui-form-label">输入框</label> * <div class="layui-input-block"> * <input type = "text" name="" placeholder="请输入" autocomplete="off" class="layui-input"> * </div> * </div> */ }
/// <summary> /// 通过使用指定的 HTML 帮助器、窗体字段的名称、文本内容、行数和列数以及指定的 HTML 特性,返回指定的 textarea 元素。 /// </summary> /// <param name="htmlHelper"> 此方法扩展的 HTML 帮助器实例</param> /// <param name="name"> 要返回的窗体字段的名称。</param> /// <param name="value"> 文本内容。</param> /// <param name="htmlAttributes"> 一个对象,其中包含要为该元素设置的 HTML 特性。</param> /// <returns> textarea 元素。</returns> public static MvcHtmlString LayTextArea(this HtmlHelper htmlHelper, string name, string value, IDictionary <string, object> htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(htmlHelper.TextArea(name, value, attrs)); }
/// <summary> /// 通过使用指定的 HTML 帮助器、窗体字段的名称、文本内容、行数和列数以及指定的 HTML 特性,返回指定的 textarea 元素。 /// </summary> /// <param name="htmlHelper"> 此方法扩展的 HTML 帮助器实例</param> /// <param name="name"> 要返回的窗体字段的名称。</param> /// <param name="value"> 文本内容。</param> /// <returns> textarea 元素。</returns> public static MvcHtmlString LayTextArea(this HtmlHelper htmlHelper, string name, string value) { var attrs = LayHtmlHelper.AddLayUIClass(classStr); return(htmlHelper.TextArea(name, value, attrs)); }
/// <summary> /// 使用指定 HTML 特性以及行数和列数,为由指定表达式表示的对象中的每个属性返回对应的 HTML textarea 元素。 /// </summary> /// <typeparam name="TModel">模型的类型。</typeparam> /// <typeparam name="TProperty">属性的类型</typeparam> /// <param name="htmlHelper"> 此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression"> 一个表达式,用于标识包含要呈现的属性的对象。</param> /// <param name="rows"> 行数。</param> /// <param name="columns">列数。</param> /// <param name="htmlAttributes">一个包含要为该元素设置的 HTML 特性的字典。</param> /// <returns> 一个由表达式表示的对象中的每个属性所对应的 HTML textarea 元素。</returns> public static MvcHtmlString LayTextAreaFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, int rows, int columns, IDictionary <string, object> htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(htmlHelper.TextAreaFor(expression, rows, columns, attrs)); }
/// <summary> /// 使用指定 HTML 特性以及行数和列数,为由指定表达式表示的对象中的每个属性返回对应的 HTML textarea 元素。 /// </summary> /// <typeparam name="TModel">模型的类型。</typeparam> /// <typeparam name="TProperty">属性的类型</typeparam> /// <param name="htmlHelper"> 此方法扩展的 HTML 帮助器实例。</param> /// <param name="expression"> 一个表达式,用于标识包含要呈现的属性的对象。</param> /// <param name="htmlAttributes">一个包含要为该元素设置的 HTML 特性的字典。</param> /// <returns> 一个由表达式表示的对象中的每个属性所对应的 HTML textarea 元素。</returns> public static MvcHtmlString LayTextAreaFor <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, object htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(htmlHelper.TextAreaFor(expression, attrs)); }
/// <summary> /// 通过使用指定的 HTML 帮助器、窗体字段的名称、文本内容、行数和列数以及指定的 HTML 特性,返回指定的 textarea 元素。 /// </summary> /// <param name="htmlHelper"> 此方法扩展的 HTML 帮助器实例</param> /// <param name="name"> 要返回的窗体字段的名称。</param> /// <param name="value"> 文本内容。</param> /// <param name="rows"> 行数。</param> /// <param name="columns">列数。</param> /// <param name="htmlAttributes"> 一个对象,其中包含要为该元素设置的 HTML 特性。</param> /// <returns> textarea 元素。</returns> public static MvcHtmlString LayTextArea(this HtmlHelper htmlHelper, string name, string value, int rows, int columns, object htmlAttributes) { var attrs = LayHtmlHelper.AddLayUIClass(classStr, htmlAttributes); return(htmlHelper.TextArea(name, value, rows, columns, attrs)); }