最近项目上需要一个 可以对表格数据进行修改的功能,本身项目没有引用像Extjs,Dojo等整体的JS UI框架,所以想找个专门对于数据表格进行编辑展示的小的框架,看了好几款,最后选定了Backgrid.js这个框架。
大致的说下我对这个框架的认识:
1.该框架需要依赖Jquery,underscore.js, Backbone.js,看了下Backgrid.js官网上的示例代码,代码里用到的代码还需要去了解下Backbone 的相关模型概念。
2.Backbone.js为复杂WEB应用程序提供模型(models)、集合(collections)、视图(views)的结构。
测试代码如下:
引入核心的js css 文件,我用到了复选框全选的功能,需要引入 select-all 的相关文件(这个你用到相关功能可以在官网页面 选择引入额外功能的相关文件),
<link href="./css/backgrid.min.css" rel="stylesheet" type="text/css" /> <link href="./css/backgrid-select-all.min.css" rel="stylesheet" type="text/css" /> <script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <script src="./js/underscore-min.js"></script> <script src="./js/backbone-min.js"></script> <script src="./js/backgrid.min.js"></script> <script src="./js/backgrid-select-all.min.js"></script>
js代码部分:
var Territory = Backbone.Model.extend({}); var Territories = Backbone.Collection.extend({ model: Territory, url: "http://backgridjs.com/examples/territories.json11" }); var territories = new Territories(); //创建 column信息 var columns = [{ name: "id", // The key of the model attribute label: "ID", // The name to display in the header editable: false, // By default every cell in a column is editable, but *ID* shouldn't be // Defines a cell type, and ID is displayed as an integer without the ',' separating 1000s. cell: Backgrid.IntegerCell.extend({ orderSeparator: '' }) }, { name: "name", label: "Name", // The cell type can be a reference of a Backgrid.Cell subclass, any Backgrid.Cell subclass instances like *id* above, or a string cell: "string" // This is converted to "StringCell" and a corresponding class in the Backgrid package namespace is looked up }, { name: "pop", label: "Population", cell: "integer" // An integer cell is a number cell that displays humanized integers }, { name: "percentage", label: "% of World Population", cell: "number" // A cell type for floating point value, defaults to have a precision 2 decimal numbers }, { name: "date", label: "Date", cell: "date" }, { name: "url", label: "URL", cell: "uri" // Renders the value in an HTML anchor element }]; // Initialize a new Grid instance var grid = new Backgrid.Grid({ columns: [{ // enable the select-all extension name: "", cell: "select-row", headerCell: "select-all" }].concat(columns), collection: territories //collections:[{"name": "Afghanistan", "url": "http://en.wikipedia.org/wiki/Afghanistan", "pop": 25500100, "date": "2013-01-01", "percentage": 0.36, "id": 1}, {"name": "Albania", "url": "http://en.wikipedia.org/wiki/Albania", "pop": 2831741, "date": "2011-10-01", "percentage": 0.04, "id": 2}] }); // Render the grid and attach the root to your HTML document $("#table-content").append(grid.render().el); // Fetch some countries from the url territories.fetch({reset: true}); //测试方法 var glabal_i =0; $("#mirstest").click(function(){ var removeRows = grid.collection.length; console.log(removeRows); console.log(grid.collection.models);//获取当前表格的数据 //console.log(grid.collection.get(93).attributes);// 获取对应Model 对应的数据对象 var InsertModel = Backbone.Model.extend({}); var addNewModel = new InsertModel(); var hellModel = new InsertModel(); hellModel.set({"name": "测试数据-"+i, "url": "http://www.baidu.com", "pop": 25500100, "date": "2013-01-01", "percentage": 0.36, "id": glabal_i++}); addNewModel.set({"name": "新的数据"+i, "url": "http://en.wikipedia.org/wiki/Afghanistan", "pop": 25500100, "date": "2013-01-01", "percentage": 0.36, "id": glabal_i++}); grid.insertRow(addNewModel); grid.insertRow(hellModel); var selectedModels = grid.getSelectedModels(); // To deselect selected models //grid.clearSelectedModels(); });
相关推荐
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
以上内容总结了Node.js学习笔记中提到的关键知识点,涵盖了Node.js的基本概念、编程基础、模块系统、服务器搭建、以及交互式环境的使用。这些内容对于初学者来说是非常重要的基础知识,有助于他们构建基础的Node.js...
Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习笔记 Manning.TypeScript.Quickly.2020 学习...
这个压缩包包含的是DWR的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式。本文旨在帮助大家认识Vue.js,了解Vue.js的开发流程,并进一步理解如何通过Vue.js来构建一个中大型的前端...
下面是Prototype.js的开发笔记,涵盖了该库的使用指南、Ajax对象、JavaScript类的扩展、对象的扩展、事件处理等多个方面。 一、Programming Guide Prototype.js是一个强大的JavaScript库,提供了许多有用的函数和...
DWR util.js 是一个功能强大的 JavaScript 库,它提供了许多有用的函数,可以帮助开发者在客户端页面上实现各种操作。下面是对 DWR util.js 的学习笔记整理。 1. $() 函数 DWRUtil 中的 $() 函数用于获取页面参数...
Node.js自学笔记
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,从而打破了JavaScript只能在浏览器中运行的传统。本学习笔记旨在深入解析Node.js的核心概念、特性以及常见...
【标题】:Prototype.js开发笔记 【描述】:本文档主要涵盖了Prototype.js库的编程指南,包括其核心概念、通用方法、Ajax对象...这份开发笔记将帮助你理解和利用Prototype.js的强大功能,提升你的JavaScript开发实践。
大神精心总结的vue.js学习笔记,可以帮你快速入门vue.js!
学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记...
《jQuery 1.6.2.js与jQuery 1.4.2.js:源码解析与学习笔记》 jQuery,作为一款强大的JavaScript库,为开发者提供了简洁的API,使得DOM操作、事件处理、动画制作和Ajax交互变得更加简单。本文将重点讨论jQuery 1.6.2...
vue.js学习笔记以及注意事项
prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重担。轻松加入Web 2.0特性。 如果你最近体验了这个程序包,你很...
2.1. JavaScript 类的扩展 2.2. 对 Object 类的扩展 2.3. 对 Number 类的扩展 2.4. 对 Function 类的扩展 2.5. 对 String 类的扩展 2.6. 对 document DOM 对象的扩展 2.7. 对 Event 对象的扩展 2.8. 在 prototype.js...
react.js.md react学习笔记
千峰node.js的笔记文件,有自己的修改