KO+bootstrap 模态窗全选绑定
HTML
<div id="modalAreaID01"> <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-bind="attr: { 'data-target': modalWindowId },click:modalWindowLoad"> Launch demo modal </button> </div> <script src="Content/jquery-2.1.1.min.js"></script> <script src="Content/bootstrap-3.2.0-dist/js/bootstrap.min.js"></script> <link href="Content/bootstrap-3.2.0-dist/css/bootstrap.min.css" rel="stylesheet" /> <script src="Content/knockout-3.1.0.min.js"></script> <script src="Content/knockout.mapping.js"></script> <script src="index.js"></script>
JS
var buidModelWindow = function (showWindowId,dataSorce, htmlAreaID, selectAllKOAction, saveKOAction, closeKOAction) { var html = "<div class='modal fade' id='" + showWindowId + "' 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' data-bind='click:" + closeKOAction + "'><span aria-hidden='true'>×</span><span class='sr-only'>Close</span></button>" + " <h4 class='modal-title' id='myModalLabel'>Modal title</h4>" + " </div>" + " <div class='modal-body'>" + "<!"+"-- ko foreach:" + dataSorce + " -->" + "<label><input type='checkbox' data-bind='checked:Enabled' /> <span data-bind='text:Value' /></label>" + "<!-- /ko -->" + " </div>" + " <div class='modal-footer'>" + " <button type='button' class='btn btn-primary' data-bind='click:" + selectAllKOAction + "'>SelectAll</button>" + " <button type='button' class='btn btn-default' data-dismiss='modal' data-bind='click:" + closeKOAction + "'>Close</button>" + " <button type='button' class='btn btn-primary' data-bind='click:" + saveKOAction + "'>Save changes</button>" + " </div>" + " </div>" + " </div>" + "</div>" $("#" + htmlAreaID + "").append(html); } var ViewModel = function (data) { var self = this; self.modelList = ko.mapping.fromJS(data); self.modalAreaID = ko.observable("modalAreaID01"); self.modalWindowId = ko.observable("#modalWindowId01"); self.modalWindowForeachID = ko.observable("modelList"); self.isAll = ko.observable(false); self.save = ko.observable(false); var indexAndEnabled = new Array(); self.selectAll = function () { if (self.isAll() == false) { ; i < self.modelList().length; i++) { self.modelList()[i].Enabled(true); } self.isAll(true); } else { ; i < self.modelList().length; i++) { self.modelList()[i].Enabled(false); } self.isAll(false); } } self.saveKOAction = function () { self.save(true); ; i < self.modelList().length; i++) { indexAndEnabled[i] = self.modelList()[i].Enabled(); } } self.closeKOAction = function () { if (self.save() == false) { for (i in indexAndEnabled) { self.modelList()[i].Enabled(indexAndEnabled[i]); } } else { } } self.modalWindowLoad = function () { self.save(false); ; i < self.modelList().length; i++) { indexAndEnabled[i] = self.modelList()[i].Enabled(); } } buidModelWindow(self.modalWindowId().substring(), self.modalWindowForeachID(), self.modalAreaID(), "selectAll", "saveKOAction", "closeKOAction"); } $(function () { var data =jQuery.parseJSON('{"KVPEList":[{"Key":null,"Value":"阿富汗","UIID":"uiid_Country_101","Enabled":false,"Pattern":"101","Percentage":-1},{"Key":null,"Value":"巴林","UIID":"uiid_Country_102","Enabled":false,"Pattern":"102","Percentage":-1},{"Key":null,"Value":"孟加拉国","UIID":"uiid_Country_103","Enabled":false,"Pattern":"103","Percentage":-1}],"Enabled":false}'); ko.applyBindings(new ViewModel(data.KVPEList)); });
代码下载:http://files.cnblogs.com/badnewfish/modalWindowKO.rar
KO+bootstrap 模态窗全选绑定的更多相关文章
- BootStrap iCheck插件全选与获取value值的解决方法
这篇文章主要介绍了BootStrap iCheck插件全选与获取value值的解决方法,解决方法其实很简单,下面小编给大家分享下这方面的知识 在使用jQuery iCheck 插件的时候遇到了一个问题 ...
- 解决jquery-ui-autocomplete选择列表被Bootstrap模态窗遮挡的问题
最近在一个ASP.NET MVC5项目中使用Bootstrap的模态窗(弹出层)来让用户填写内容,其中的一个编辑框提供了自动完成功能,用jQuery UI Autocomplete来实现. 因为我是W ...
- jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
转:http://www.cnblogs.com/wiseant/p/4553837.html 最近在一个ASP.NET MVC5项目中使用Bootstrap的模态窗(弹出层)来让用户填写内容,其中的 ...
- bootstrap实现checkbox全选、取消全选
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 最新版本的 ...
- 使用AngularJS实现简单:全选和取消全选功能
这里用到AngularJS四大特性之二----双向数据绑定 注意:没写一行DOM代码!这就是ng的优点,bootstrap.css为了布局,JS代码也只是简单创建ng模块和ng控制器 效果: < ...
- MVC身份验证.MVC过滤器.MVC6关键字Task,Async.前端模拟表单验证,提交.自定义匿名集合.Edge导出到Excel.BootstrapTree树状菜单的全选和反选.bootstrap可搜索可多选可全选下拉框
1.MVC身份验证. 有两种方式.一个是传统的所有控制器继承自定义Control,然后再里面用MVC的过滤器拦截.所以每次网站的后台被访问时.就会先走入拦截器.进行前端和后端的验证 一个是利用(MVC ...
- Bootstrap, 模态框实现值传递,自动勾选
目录 Bootstrap,模态框自动勾选,值传递 1.父页面 2. 子页面(modal) 模态框 Bootstrap,模态框自动勾选,值传递 场景: 有一个这样的需求, 在父页面有一个table, ...
- FlexiGrid 使用 全选、自动绑定
1.介绍 Flexigrid是一个类似于Ext Gird,但基于jQuery开发的Grid.它具有的功能包括:可以调整列宽,合并列标题,分页,排序,显示/隐藏表格等.Flexigrid显示的数据能够通 ...
- Bootstrap模态弹出窗
Bootstrap模态弹出窗有三种方式: 1.href触发模态弹出窗元素: <a class="btn btn-primary" data-toggle="moda ...
随机推荐
- 【bzoj1084】最大子矩阵
题意 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. \(1≤n≤100,1≤m≤2,1≤k≤10\) 分析 由于\(m\)只有两 ...
- c c++怎么判断一个字符串中是否含有汉字
c c++怎么判断一个字符串中是否含有汉字 (2013-02-05 10:44:23) 转载▼ #include #include int main() { char sztext[] = ...
- unity htc vive使用
本文介绍如何在Unity中使用HTC vive设备,当前VR作为市场比较火热的热点,HTC VIVE设备作为三大供应商之一,许多人购买了该设备,却不知道如何使用,本文通过图文并茂的形式,进行手把手的讲 ...
- cookie的使用
cookie的使用 1.创建cookie对象: function addCookie(name, value) { var path = filterRoot(); var cookieString ...
- JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式
var minute = 1000 * 60; var hour = minute *60; var day = hour *24; var week = day * 7; var month = d ...
- Linux 安装图形界面及远程连接
#可查询哪些组件是否已经安装(可用来对照组件名称) yum grouplist yum groupinstall 'X Window System' -y #安装GNOME桌面环境 yum group ...
- 云端 Linux下安装 Java
根据需要在给云端的机器安装Java 问题的分解为2个一个是Java源文件的传输.一个是Linux下Java的安装. Java 传输到云端: 可以通过SSH Secure File Transfer C ...
- 【转】 linux之sed用法
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- 单例模式(Singleton Pattern)
动机: 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性.以及良好的效率. 如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例? 这应该是类设 ...
- OC之160728
NSData与NSMutableData:代表数据缓冲区有两个作用,将数据读入NSData和输出NSData数据 输出 将字符串写入指定文件 用NSFileManager:为创建,删除,移动,复制文件 ...