Bootstrap~大叔封装的弹层

简介:

对于Bootstrap的弹层,插件有很多,今天主要用的是它自带的功能,通过bootstrap提供的模式窗口来实现的,而大叔主要对使用方法进行了封装,开发人员可以自己动态传入弹层的HTML内容,可以控制按钮的显示与隐藏,用户通过MVC扩展方法对弹层进行生成,然后使用A标签进行调用.

具体使用很简单

@Html.GenerateDialog("测试",true, 
@<div>
    <form action="/home/index">hello world!</form>
</div>)
<a data-toggle='modal' data-target='#LindModal'>测试弹层</a>

上面代码分为两块,第一块MVC扩展方法,主要用于在页面上输出弹层的代码段,第二段是A标签的调用,主要用于绑定上面的弹层控件.

下面主要看一下弹层的扩展方法,它使用了Func<string, HelperResult>这个委托,用来接收前台的HTML代码段,这对于开发人员是个福音,你不用关心如何去拼接HTML代码了,而是直接把前台给我们的代码复制过来即可.

弹层方法

    #region Bootstrap弹层
        /// <summary>
        /// bootstrap风格的弹层
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="isBtn"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static MvcHtmlString GenerateDialog(this HtmlHelper htmlHelper, bool isBtn, Func<string, HelperResult> result)
        {
            return GenerateDialog(htmlHelper, "详细", isBtn, result);
        }
        /// <summary>
        /// bootstrap风格的弹层
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="title"></param>
        /// <param name="isBtn"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static MvcHtmlString GenerateDialog(this HtmlHelper htmlHelper, string title, bool isBtn, Func<string, HelperResult> result)
        {
            string templete = @"<div class='modal fade' id='LindModal' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
                               <div class='modal-dialog'>
                                   <div class='modal-content'>
                                       <div class='modal-header'>
                                           <button type='button' class='close'
                                               data-dismiss='modal' aria-hidden='true'>
                                               &times;
                                           </button>
                                           <h4 class='modal-title' id='myModalLabel'>"+title+
                                           @"</h4>
                                       </div>
                                       <div class='modal-body' id='dialogContent'>
                                        " + result.Invoke(null) + "</div>";
            if (isBtn)
            {
                templete +=
                @"<div class='modal-footer'>
                     <button type='button' class='btn btn-warning'
                         data-dismiss='modal'>
                         关闭
                     </button>
                     <button type='button' class='btn btn-primary' id='subBtn'>
                         提交
                     </button>
                  </div>";
            }
            templete +=
            @"</div>
                </div>
                  </div>
                    <script>
                        $('#subBtn').click(function(){$('#dialogContent form').submit();});
                     </script>";
            return MvcHtmlString.Create(templete);

        }
        #endregion

而运行的效果是我们可以想到的

感谢咱们的阅读!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:Bootstrap~大叔封装的弹层,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
存储 小程序 JavaScript
【微信小程序】-- 自定义组件 -- 数据、方法和属性(三十三)
【微信小程序】-- 自定义组件 -- 数据、方法和属性(三十三)
|
1月前
|
JSON 小程序 JavaScript
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
【微信小程序】-- 自定义组件 -- 创建与引用 &样式(三十二)
|
6月前
|
JavaScript
自行封装的tabs组件配合echarts而出现的bug以及解决
自行封装的tabs组件配合echarts而出现的bug以及解决
87 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第二十天-vue3.0-把element-ui组件导入封装为特定模块
前端学习笔记202305学习笔记第二十天-vue3.0-把element-ui组件导入封装为特定模块
46 0
|
9月前
|
C# Android开发
Blazor如何实现类似于微信的Tab切换?
Blazor如何实现类似于微信的Tab切换?
66 0
|
11月前
|
前端开发 JavaScript PHP
largon工程引入线下bootstrap样式链接,如果你的bootstrap样式没有出现,可以试试这样子
largon工程引入线下bootstrap样式链接,如果你的bootstrap样式没有出现,可以试试这样子
|
JavaScript
js组装知识(待续……)(三)
js组装知识(待续……)(三)
|
资源调度 JavaScript 前端开发
js组装知识(待续……)(二)
js组装知识(待续……)(二)
|
JavaScript
js组装知识(待续……)(一)
js组装知识(待续……)(一)
|
前端开发 JavaScript 开发者
Bootstrap响应式前端框架笔记十六——模态框交互
Bootstrap响应式前端框架笔记十六——模态框交互
192 0
Bootstrap响应式前端框架笔记十六——模态框交互