Esempio n. 1
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 linkbutton 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="id">ID 属性值。</param>
        /// <param name="onClick">单击时执行的 js 脚本。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static HtmlString LinkButton(this System.Web.Mvc.HtmlHelper htmlHelper, string id, string onClick, LinkButtonSettings settings = null)
        {
            var builder = new TagBuilder("span");

            builder.AddCssClass("easyui-linkbutton");
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.GenerateId(id);
            return(new HtmlString(builder.ToString(TagRenderMode.Normal)));
        }
Esempio n. 2
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 combobox 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 cbo 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString ComboBox(this HtmlHelper htmlHelper, string exp, ComboBoxSettings settings = null, object htmlAttributes = null)
        {
            var builder = new EasyUITagBuilder("select", "easyui-combobox", settings);

            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.GenerateId("cbo" + exp);
            return(new ExtendHtmlString(builder));
        }
Esempio n. 3
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 filebox 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 txt 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static HtmlString FileBox(this System.Web.Mvc.HtmlHelper htmlHelper, string exp, FileBoxSettings settings = null)
        {
            var builder = new TagBuilder("input");

            builder.AddCssClass("easyui-filebox");
            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.GenerateId("cbo" + exp);
            return(new HtmlString(builder.ToString(TagRenderMode.Normal)));
        }
Esempio n. 4
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 timespinner 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 txt 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static HtmlString TimeSpinner(this HtmlHelper htmlHelper, string exp, TimeSpinnerSettings settings = null)
        {
            var builder = new EasyUITagBuilder("input", "easyui-timespinner", settings);

            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.GenerateId("txt" + exp);
            return(new HtmlString(builder.ToString(TagRenderMode.Normal)));
        }
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 datetimespinner 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 txt 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString DateTimeSpinner(this HtmlHelper htmlHelper, string exp, DateTimeSpinnerSettings settings = null)
        {
            settings = settings ?? new DateTimeSpinnerSettings();

            var builder = new EasyUITagBuilder("input", "easyui-timespinner", settings);
            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.GenerateId("txt" + exp);
            return new ExtendHtmlString(builder);
        }
Esempio n. 6
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 numberbox 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 txt 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString NumberBox(this HtmlHelper htmlHelper, string exp, NumberBoxSettings settings = null)
        {
            settings = settings ?? new NumberBoxSettings();

            var builder = new EasyUITagBuilder("input", "easyui-numberbox", settings);

            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.GenerateId("txt" + exp);
            return(new ExtendHtmlString(builder));
        }
Esempio n. 7
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 filebox 元素。
        /// </summary>
        /// <typeparam name="TModel">数据模型类型。</typeparam>
        /// <typeparam name="TProperty">绑定的属性的类型。</typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression">指定绑定属性的表达式。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static HtmlString FileBox <TModel, TProperty>(this System.Web.Mvc.HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, FileBoxSettings settings = null)
        {
            var metadata     = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var propertyName = metadata.PropertyName;
            var builder      = new TagBuilder("input");

            builder.AddCssClass("easyui-filebox");
            builder.MergeAttribute("name", propertyName);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.GenerateId("cbo" + propertyName);
            return(new HtmlString(builder.ToString(TagRenderMode.Normal)));
        }
Esempio n. 8
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 combotree 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 cbo 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString ComboTree(this HtmlHelper htmlHelper, string exp, ComboTreeSettings settings = null)
        {
            settings = settings ?? new ComboTreeSettings();

            var builder = new EasyUITagBuilder("select", "easyui-combotree", settings);

            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.GenerateId("cbo" + exp);
            return(new ExtendHtmlString(builder));
        }
Esempio n. 9
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 textbox 元素。
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="exp">属性名或使用 txt 作为前缀的 ID 名称。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString TextMultiBox(this HtmlHelper htmlHelper, string exp, TextBoxSettings settings = null)
        {
            settings           = settings ?? new TextBoxSettings();
            settings.Multiline = true;
            var builder = new EasyUITagBuilder("textarea", "easyui-textbox", settings);

            builder.MergeAttribute("name", exp);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-multi");
            builder.GenerateId("txt" + exp);
            return(new ExtendHtmlString(builder));
        }
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 datetimespinner 元素。
        /// </summary>
        /// <typeparam name="TModel">数据模型类型。</typeparam>
        /// <typeparam name="TProperty">绑定的属性的类型。</typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression">指定绑定属性的表达式。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString DateTimeSpinner<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, DateTimeSpinnerSettings settings = null)
        {
            settings = settings ?? new DateTimeSpinnerSettings();

            var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var propertyName = metadata.PropertyName;
            settings.Bind(typeof(TModel), propertyName);

            var builder = new EasyUITagBuilder("input", "easyui-timespinner", settings);
            builder.MergeAttribute("name", propertyName);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.GenerateId("txt" + propertyName);
            return new ExtendHtmlString(builder);
        }
Esempio n. 11
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 textbox 元素。
        /// </summary>
        /// <typeparam name="TModel">数据模型类型。</typeparam>
        /// <typeparam name="TProperty">绑定的属性的类型。</typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression">指定绑定属性的表达式。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString TextMultiBox <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, TextBoxSettings settings = null)
        {
            settings           = settings ?? new TextBoxSettings();
            settings.Multiline = true;

            var metadata     = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var propertyName = metadata.PropertyName;

            settings.Bind(typeof(TModel), propertyName);

            var builder = new EasyUITagBuilder("textarea", "easyui-textbox", settings);

            builder.MergeAttribute("name", propertyName);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-multi");
            builder.GenerateId("txt" + propertyName);
            return(new ExtendHtmlString(builder));
        }
Esempio n. 12
0
        /// <summary>
        /// 为 <see cref="HtmlHelper"/> 对象扩展 validatebox 元素。使用一个枚举类型输出 Key-Value 数组,Value 是使用 <see cref="EnumDescriptionAttribute"/> 标注的。
        /// </summary>
        /// <typeparam name="TModel">数据模型类型。</typeparam>
        /// <typeparam name="TProperty">绑定的属性的类型。</typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression">指定绑定属性的表达式。</param>
        /// <param name="enumType">要绑定的枚举类型。</param>
        /// <param name="settings">参数选项。</param>
        /// <returns></returns>
        public static ExtendHtmlString ComboBox <TModel, TProperty>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, Type enumType, ComboBoxSettings settings = null)
        {
            settings = settings ?? new ComboBoxSettings();

            var metadata     = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
            var propertyName = metadata.PropertyName;

            settings.Bind(typeof(TModel), propertyName);

            var builder = new EasyUITagBuilder("select", "easyui-combobox", settings);

            builder.MergeAttribute("name", propertyName);
            builder.MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
            builder.AddCssClass("form-input");
            builder.InnerHtml = BuildEnumOptions(enumType);
            builder.GenerateId("cbo" + propertyName);
            return(new ExtendHtmlString(builder));
        }
Esempio n. 13
0
 public EasyUITagBuilder(string tagName, string className, SettingsBase settings)
     : base(tagName)
 {
     AddCssClass(className);
     MergeAttribute("data-options", SettingsSerializer.Serialize(settings));
 }