`
ljl_xyf
  • 浏览: 636774 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Knockout结合Bootstrap创建动态UI--产品列表管理

 
阅读更多

本篇文章结合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结合Bootstrap创建动态UI实现产品列表管理

    在本文中,我们将探讨如何利用Knockout.js和Bootstrap框架创建一个动态的用户界面(UI),用于实现产品列表的管理,包括添加、删除和编辑产品信息。Knockout.js是一个强大的MVVM(Model-View-ViewModel)库,它简化...

    前端项目-knockout-bootstrap.zip

    这个项目主要是为了展示如何将Knockout.js的强数据绑定功能与Bootstrap的UI组件结合,以创建功能丰富的、响应式的Web应用。下面我们将深入探讨其中涉及的技术和知识点。 1. **Knockout.js**:这是一个轻量级的MVVM...

    Knockout-Bootstrap-MVC-Sample:工作示例源代码,以使用ASP.NET MVC演示Knockout.js和Bootstrap-mvc source code

    在这个项目中,Knockout.js和Bootstrap被集成到ASP.NET MVC框架中,创建了一个动态且用户友好的界面。开发者可以学习如何使用Knockout的数据绑定特性来连接ASP.NET MVC的后端数据和Bootstrap的前端组件,如模态...

    BootstrapTable与KnockoutJS相结合实现增删改查功能【二】

    当我们将Bootstrap和KnockoutJS结合起来使用时,一方面能够利用Bootstrap提供的高级UI组件来构建好看的界面,另一方面,KnockoutJS可以处理数据的动态变化,自动更新视图。这种结合大大提高了开发效率,尤其是在需要...

    ASP.NET MVC 5 with Bootstrap and Knockout.js Oreilly 2015

    《ASP.NET MVC 5 with Bootstrap and Knockout.js》是由O'Reilly出版社于2015年出版的一本专业书籍,主要面向的是希望掌握ASP.NET MVC 5开发技术,并结合Bootstrap和Knockout.js构建现代Web应用程序的开发者。...

    Learn-Asp.Net-MVC4-Project:使用mvc4,entityframework,knockout和bootstrap学习asp.net

    在ASP.NET MVC应用中,结合Knockout.js,可以在客户端实现动态更新视图,而无需重新加载整个页面。Knockout.js的核心是Observables,它们监控并自动更新与之关联的UI元素,简化了前端数据管理。 最后,Bootstrap是...

    Knockout js 基礎入門教學

    Knockout.js能够很好地与其他JavaScript库和框架协同工作,例如可以轻松地将Bootstrap或其他UI框架的组件与Knockout.js的绑定相结合。 #### 更改button的状态 通过绑定`disabled`属性,可以基于数据条件动态地启用...

    基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发

    5、采用Knockout,,提供了一个数据模型与用户UI界面进行关联的高层次方式(采用行为驱动开发) 6、数据访问层采用强大的Fluentdata完美地支持多数据库操作 7、封装了一大部分比较实用的控件和组件,如自动完成...

    BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查

    在本文中,我们将探讨如何利用BootstrapTable和KnockoutJS结合来实现一个高效且易于维护的增删改查(CRUD)解决方案。这个方案主要基于MVVM(Model-View-ViewModel)模式,使得前端交互更加简洁,同时也充分利用了...

    metronic.bootstrap后台案例

    "Metronic Bootstrap 后台案例"是一个基于Bootstrap框架构建的高效、全面的后台管理模板,旨在为开发者提供一个快速开发后台界面的解决方案。Bootstrap作为世界上最流行的前端开发框架,以其响应式设计和易用性而...

    ASP.NET MVC 4, EF, Knockoutjs and Bootstrap

    在ASP.NET MVC应用中,结合Knockout.js可以创建动态、交互性强的前端界面。它使数据和视图之间的同步变得容易,减少了手动更新DOM的复杂性。开发者可以定义观察者(observables),当数据改变时,关联的UI元素会自动...

    metronic 5.0 新版 后台管理系统 ui风格样式

    Metronic 5.0 是一款备受推崇的后台管理系统UI模板,专为开发高效、美观的管理界面而设计。这个版本带来了全新的改进和功能,旨在提升用户体验并简化开发流程。下面我们将详细探讨Metronic 5.0的核心特点和知识点。 ...

    Inspinia 后台主题UI框架 V2.6.1 MVC 5 Seed

    Inspinia MVC 5框架的核心在于结合了Bootstrap前端框架的灵活性与MVC 5的开发模式,使得开发者能够快速创建响应式、移动优先的Web应用程序。MVC 5是一种流行的设计模式,它将业务逻辑、用户界面和数据访问分离开来,...

    MVC Knockoutjs Bootstrap简单框架

    Knockout 使用 JavaScript ViewModel 实现了 MVVM 模式. 在 MVC 中还有一个很棒的因素是从 Javascript 模型序列化为 Json 和从 Json 反序列为模型都很简单,在 MVC4 中已经包含了这个脚本库, 这使得在我们开发复杂的...

    metronic.bootstrap后台模板

    这个模板基于流行的Bootstrap前端框架,提供了丰富的UI组件、布局选项和可定制的设计,旨在帮助开发者快速搭建高效、美观的企业级管理界面。 Bootstrap是一个开源的前端开发框架,由Twitter开发,它提供了包括栅格...

    metronic.bootstrap前后台完整模板

    MetronicBootstrap模板结合了Bootstrap框架的灵活性与Metronic的独特特性,提供了丰富的UI组件、示例页面和定制选项。 1. **Bootstrap框架**:Bootstrap是世界上最流行的前端开发框架之一,由Twitter开发。它提供了...

    django-jinja-knockout:AJAX和传统的Django数据表和小部件。 仅显示ModelForms。 使用AJAX提交和验证的ModelForms内联表单集。 适用于Django模板

    Knockout.js是一个MVVM(模型-视图-ViewModel)库,它简化了JavaScript应用的状态管理和UI绑定。通过使用数据绑定,Knockout.js可以实时更新视图,当模型数据发生变化时。在本项目中,Knockout.js用于实现前端数据的...

    Responsive_Bootstrap of INSPINIA

    响应式Bootstrap INSPINIA是基于现代Web技术构建的一款高效、功能丰富的Web应用程序管理主题,专为构建管理和后台界面设计。这款2017版的INSPINIA IN+ v2.7.1包含了对MVC5框架的支持,并且具有移动端适配能力,确保...

Global site tag (gtag.js) - Google Analytics