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 ...
随机推荐
- Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!
其实就是 登录用户名错了,是 root,不是centos 也不是 ec2-user ! Xshell 连接配置界面如下 最重要是 登录授权配置 最后,登录成功! 就这么简单
- angularjs简述
1.MVC设计模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式 Model(模型)表示应用程序核心(比如数据库记录列表 ...
- ARM汇编程序基本知识
ARM汇编程序基本知识 1.汇编程序的基本组成 ARM汇编语言程序中,程序是以程序段为单位组织代码的.段是相对独立的指令或者代码序列,拥有特定的名称.段的种类有代码段.数据段和通用段,代 码段的内容为 ...
- easy ui datagrid 中getSelections方法只能获取一行数据
解决方案:设置 idField : "", // 设置标识
- iOS开发网络篇—使用ASI框架进行文件下载
iOS开发网络篇—使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: #import "YYViewCo ...
- 黑客长期摇号不中"黑"掉北京小客车摇号网
新闻链接:http://www.2cto.com/News/201310/248936.html 新闻时间:2013-10-11 新闻正文: 为发泄长期摇号不中的不满,同时也为自己研发的软件打广告,硕 ...
- POJ 2828 线段树(想法)
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 15422 Accepted: 7684 Desc ...
- 一道模拟题:改进的Joseph环
题目:改进的Joseph环.一圈人报数,报数上限依次为3,7,11,19,循环进行,直到所有人出列完毕. 思路:双向循环链表模拟. 代码: #include <cstdio> #inclu ...
- Android开源框架:Universal-Image-Loader解析(一)
之前花了一些时间,好好看了下这个框架,于是决定再重新梳理一下,把整个处理方法和流程过一遍,俗话说:温故而知新嘛 关于Universal-Image-Loader此框架的各种优点,稍微介绍下,网上应该也 ...
- Structs2中iterator的status属性的用法
iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用<s:iterator/>标签的时候有三个属性值得我们关注 1. value属性:可选的属性,va ...