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 ...
随机推荐
- 004_kafka_安装运行
1.下载和安装 目前kafka的稳定版本为0.10.0.0 下载地址:http://kafka.apache.org/downloads.html 下载后解压缩安装包到系统即可完成安装 > ta ...
- 张艾迪(创始人):Hello.世界...
The World No.1 Girl :Eidyzhang The World No.1 Internet Girl :Eidyzhang AOOOiA.global Founder :Eidyzh ...
- HTML 文本格式化<b><big><em><i><small><strong><sub><sup><ins><del>
<b> 标签-粗体 定义和用法: <b>标签规定粗体文本. 提示和注释 注释:根据 HTML5 规范,在没有其他合适标签更合适时,才应该把 <b> 标签作为最后的选 ...
- oracle procedure
http://www.cnblogs.com/wuhenke/archive/2010/03/20/1690535.html
- ASP.NET Redis 开发 [转]
Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的 ...
- 替换Notes,K2 BPM为vivo打造新平台
vivo是步步高旗下的分品牌,专注于智能手机领域,隶属于广东步步高工业电子有限公司.vivo追求乐趣.充满活力.年轻时尚的群体一起打造拥有卓越外观.专业级音质.极致影像.愉悦体验的智能产品,并将敢于追 ...
- 图表控件== 百度 echarts的入门学习
花了3天的时间 去学习跟试用之前两款的图表控件 hightcharts(商业,人性化,新手非常方便试用,图表少了点) 跟chartjs==>搭配vue更好 控件,整体而言都还可以. http:/ ...
- 在中心交换机前加入多wan口路由,华为中心交换机的学习
1.前期经过学习,好多笔记不记得了.要慢慢实践,实战中学习一遍, 2.真实情况看图 3.我们没有接路由器的时候,连接cosle口入中心交换机.telnet上去. 命令行:sys_view undo i ...
- Java 基本语法(1)
关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用. ...
- juqey.html(),text(),val()
.html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值. 这三个方法功能上的对比 .html(),.text() ...