本篇文章结合Bootstrap创建一个比较完整的应用,对产品视图进行管理,包括产品的增加、删除、修改。
需要的引用
<script type='text/javascript' src='http://www.see-source.com/js/knockout-2.2.0.js'></script> <script type='text/javascript' src='http://www.see-source.com/js/jquery-1.6.2.min.js'></script> <link href="http://www.see-source.com/bootstrap/css/bootstrap.css" rel="stylesheet">
Html代码
<body> <!-- 动态生成产品列表 --> <table class="table table-bordered"> <thead> <tr> <th>ID</th> <th>产品名称</th> <th>原价</th> <th>促销价</th> <th>操作</th> </tr> </thead> <tbody data-bind="foreach: products"> <tr > <td> <span data-bind="text: $data.Id"></span> </td> <td> <input type="text" data-bind="value: $data.Name"/> </td> <td> <input type="text" data-bind="value: $data.Price"/> </td> <td> <input type="text" data-bind="value: $data.ActualCost"/> </td> <td> <input type="button" class="btn" value="修改" data-bind="click: $root.update"/> <input type="button" class="btn" value="删除" data-bind="click: $root.remove"/> </td> </tr> </tbody> </table> <!-- 产品添加form --> <form class="form-horizontal" data-bind="submit:$root.create"> <fieldset> <legend>添加产品</legend> <div class="control-group"> <label class="control-label" for="input01">产品名称</label> <div class="controls"> <input type="text" name="Name" class="input-xlarge"> </div> </div> <div class="control-group"> <label class="control-label" for="input01">原价</label> <div class="controls"> <input type="text" name="Price" class="input-xlarge"> </div> </div> <div class="control-group"> <label class="control-label" for="input01">促销价</label> <div class="controls"> <input type="text" name="ActualCost" class="input-xlarge"> </div> </div> <div class="form-actions"> <button type="submit" class="btn btn-primary">保存</button> <button class="btn">取消</button> </div> </fieldset> </form> </body>
js代码
<script type="text/javascript"> function ProductsViewModel() { var baseUri = 'http://localhost:8080/knockout/'; var self = this; //self.products = ko.observableArray([{'Id':'111','Name':'联想K900','Price':'3299','ActualCost':'3000'},{'Id':'222','Name':'HTC one','Price':'4850','ActualCost':'4500'}]); self.products = ko.observableArray(); $.getJSON(baseUri + "list", self.products);//加载产品列表 //添加产品 self.create = function (formElement) { $.post(baseUri + "add", $(formElement).serialize(), function(data) { if(data.success){//服务器端添加成功时,同步更新UI var newProduct = {}; newProduct.Id = data.ID; newProduct.Name = formElement.Name.value; newProduct.Price = formElement.Price.value; newProduct.ActualCost = formElement.ActualCost.value; self.products.push(newProduct); } },"json"); } //修改产品 self.update = function (product) { $.post(baseUri + "update", product, function(data) { if(data.success){ alert("修改成功"); } },"json"); } //删除产品 self.remove = function (product) { $.post(baseUri + "delete", "productID="+product.Id, function(data) { if(data.success){ //服务器端删除成功时,UI中也删除 self.products.remove(product); } },"json"); } } ko.applyBindings(new ProductsViewModel()); </script>
相关推荐
在本文中,我们将探讨如何利用Knockout.js和Bootstrap框架创建一个动态的用户界面(UI),用于实现产品列表的管理,包括添加、删除和编辑产品信息。Knockout.js是一个强大的MVVM(Model-View-ViewModel)库,它简化...
这个项目主要是为了展示如何将Knockout.js的强数据绑定功能与Bootstrap的UI组件结合,以创建功能丰富的、响应式的Web应用。下面我们将深入探讨其中涉及的技术和知识点。 1. **Knockout.js**:这是一个轻量级的MVVM...
在这个项目中,Knockout.js和Bootstrap被集成到ASP.NET MVC框架中,创建了一个动态且用户友好的界面。开发者可以学习如何使用Knockout的数据绑定特性来连接ASP.NET MVC的后端数据和Bootstrap的前端组件,如模态...
当我们将Bootstrap和KnockoutJS结合起来使用时,一方面能够利用Bootstrap提供的高级UI组件来构建好看的界面,另一方面,KnockoutJS可以处理数据的动态变化,自动更新视图。这种结合大大提高了开发效率,尤其是在需要...
《ASP.NET MVC 5 with Bootstrap and Knockout.js》是由O'Reilly出版社于2015年出版的一本专业书籍,主要面向的是希望掌握ASP.NET MVC 5开发技术,并结合Bootstrap和Knockout.js构建现代Web应用程序的开发者。...
在ASP.NET MVC应用中,结合Knockout.js,可以在客户端实现动态更新视图,而无需重新加载整个页面。Knockout.js的核心是Observables,它们监控并自动更新与之关联的UI元素,简化了前端数据管理。 最后,Bootstrap是...
Knockout.js能够很好地与其他JavaScript库和框架协同工作,例如可以轻松地将Bootstrap或其他UI框架的组件与Knockout.js的绑定相结合。 #### 更改button的状态 通过绑定`disabled`属性,可以基于数据条件动态地启用...
5、采用Knockout,,提供了一个数据模型与用户UI界面进行关联的高层次方式(采用行为驱动开发) 6、数据访问层采用强大的Fluentdata完美地支持多数据库操作 7、封装了一大部分比较实用的控件和组件,如自动完成...
在本文中,我们将探讨如何利用BootstrapTable和KnockoutJS结合来实现一个高效且易于维护的增删改查(CRUD)解决方案。这个方案主要基于MVVM(Model-View-ViewModel)模式,使得前端交互更加简洁,同时也充分利用了...
"Metronic Bootstrap 后台案例"是一个基于Bootstrap框架构建的高效、全面的后台管理模板,旨在为开发者提供一个快速开发后台界面的解决方案。Bootstrap作为世界上最流行的前端开发框架,以其响应式设计和易用性而...
在ASP.NET MVC应用中,结合Knockout.js可以创建动态、交互性强的前端界面。它使数据和视图之间的同步变得容易,减少了手动更新DOM的复杂性。开发者可以定义观察者(observables),当数据改变时,关联的UI元素会自动...
Metronic 5.0 是一款备受推崇的后台管理系统UI模板,专为开发高效、美观的管理界面而设计。这个版本带来了全新的改进和功能,旨在提升用户体验并简化开发流程。下面我们将详细探讨Metronic 5.0的核心特点和知识点。 ...
Inspinia MVC 5框架的核心在于结合了Bootstrap前端框架的灵活性与MVC 5的开发模式,使得开发者能够快速创建响应式、移动优先的Web应用程序。MVC 5是一种流行的设计模式,它将业务逻辑、用户界面和数据访问分离开来,...
Knockout 使用 JavaScript ViewModel 实现了 MVVM 模式. 在 MVC 中还有一个很棒的因素是从 Javascript 模型序列化为 Json 和从 Json 反序列为模型都很简单,在 MVC4 中已经包含了这个脚本库, 这使得在我们开发复杂的...
这个模板基于流行的Bootstrap前端框架,提供了丰富的UI组件、布局选项和可定制的设计,旨在帮助开发者快速搭建高效、美观的企业级管理界面。 Bootstrap是一个开源的前端开发框架,由Twitter开发,它提供了包括栅格...
MetronicBootstrap模板结合了Bootstrap框架的灵活性与Metronic的独特特性,提供了丰富的UI组件、示例页面和定制选项。 1. **Bootstrap框架**:Bootstrap是世界上最流行的前端开发框架之一,由Twitter开发。它提供了...
Knockout.js是一个MVVM(模型-视图-ViewModel)库,它简化了JavaScript应用的状态管理和UI绑定。通过使用数据绑定,Knockout.js可以实时更新视图,当模型数据发生变化时。在本项目中,Knockout.js用于实现前端数据的...
响应式Bootstrap INSPINIA是基于现代Web技术构建的一款高效、功能丰富的Web应用程序管理主题,专为构建管理和后台界面设计。这款2017版的INSPINIA IN+ v2.7.1包含了对MVC5框架的支持,并且具有移动端适配能力,确保...