基于bootstrap3的表格组件

表格在自己目前的开发中很常用,每次都写那么多重复的代码,感觉很繁琐。为了以后的开发中表格使用方便,特将表格封装成了一个组件,调用方式类似jquery的easyui,比较方便通用。

样子大概如下:


调用方式:引入jquery、bootstrap、lodash,之后在html页面写如下代码:

	<!-- 表格使用例子开始 -->
		<div class="gstable-container">
			<div class="gop">
				<div style="height: 30px">
					<div style="float: left; padding-bottom: 10px">
						<button class="btn btn-primary" id="btn-new">
							<i class="fa fa-plus"></i> 新建
						</button>
						<button class="btn btn-danger" id="btn-del">
							<i class="fa fa-minus"></i> 删除
						</button>
					</div>
					<div class="filter">
						<input name="condition" placeholder="人员名称"
							class="form-control search">
						<div class="dropdown gscolSeletor">
							<i data-toggle="dropdown" class="fa fa-table dropdown-toggle"></i>
							<ul class="dropdown-menu dropdown-menu-right">
							</ul>
						</div>
					</div>
				</div>
			</div>

			<div class="tbOuterDiv">
				<div id="tableDiv" class="gstable"></div>
			</div>
		</div>
		<!-- 表格结束 -->

编写js如下:

$(function(){
	var jsonData={
		    "retCode": "000000",
		    "retMsg": "信息获取成功!",
		    "data": {
		        "page": 1,//当前页码
		        "pageSize": 10,//每页条目数
		        "total": 20,//总条目数
		        "totalPage": 3,//总页数
		        "data": [
		            {
		                "id": 1,
		                "createDate": null,
		                "userName": "liweiwei1",
		                "realName": "liweiwei11",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 2,
		                "createDate": null,
		                "userName": "liweiwei2",
		                "realName": "liweiwei22",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 3,
		                "createDate": null,
		                "userName": "liweiwei3",
		                "realName": "liweiwei33",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 4,
		                "createDate": null,
		                "userName": "liweiwei4",
		                "realName": "liweiwei44",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 5,
		                "createDate": null,
		                "userName": "liweiwei5",
		                "realName": "liweiwei55",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 6,
		                "createDate": null,
		                "userName": "liweiwei6",
		                "realName": "liweiwei66",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 7,
		                "createDate": null,
		                "userName": "liweiwei7",
		                "realName": "liweiwei77",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 8,
		                "createDate": null,
		                "userName": "liweiwei8",
		                "realName": "liweiwei88",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 9,
		                "createDate": null,
		                "userName": "liweiwei9",
		                "realName": "liweiwei99",
		                "phoneNum": "123456",
		                "userType": null
		            },
		            {
		                "id": 10,
		                "createDate": null,
		                "userName": "liweiwei10",
		                "realName": "liweiwei1010",
		                "phoneNum": "123456",
		                "userType": null
		            }
		        ]
		    }
		};
	
	
	$(".gstable-container").datagrid({
		//
		title : '服务器管理列表',
		//是否显示下方的分页
		pagination: true, 
		//当前页码
		page:1,
		//每页展示的条数
		rows: 10,
		//静态给定数据,用来测试,实际使用中,数据应通过ajax请求过来
		jsonData:jsonData,
		//表格数据请求的url,当url给定的时候,jsonData项将不起作用
//		url:  '/websvn/app/users.json',
		//url:'test.json',
		//ajax请求的时候是同步还是异步。true为异步
		async:true,
		//是否可以自定义展示的列(右上角的表格小图标事件)
		customColumns: true,
		//是否展示列标题,即列头
	    showThead:true,
	    //可以附加查询条件。json方式传递
	    qData : {},
	    idField : "id",
	    //是否显示复选框
	    withCheckbox : true,
	    //是否显示列头的复选框(全选作用)
	    titleCheckbox : true,
	    //记录为空时的提示信息
	    emptyTips : "数据条目为空!",
	    //复选框存在的情况下,最多可以选择几个,1代表单选,只能选择一个。0为不限制
	    selectedNums : 1,
	    //列信息。title为列头,field此列取得数组对象的属性
		columns:[		         
		         {field: 'id', hidden:true},
		         {field: '', title:"序号",formatter: function(value,row,index){
		        	 return index+1;
		         }},
		         {field: 'userName', title: '登录名', sortable: true, formatter: function(value,row,index){
		        	 return "<a href='/user/"+row.id+"'>"+value+"</a>";
		         }},
		         {field:'realName',title:'中文名称',cls: "", sortable: false},
		         {field: 'phoneNum', title: '手机号', cls: "hidemobile"},
		         {field: 'userType', title: '用户类型', cls: "hidemobile"},
		         {field: 'createDate', title: '创建时间', cls: "hidemobile"}
		        ],
		        //表格加载前,可以在此方法里处理一些逻辑
		        onBeforeLoad : function(datagrid) {
		        	console.log('开始加载 表格数据');
		        },
		        //ajax请求成功时调用的方法
		        onComplete:function(datagrid){
		        	console.log("数据请求完成!");
		        },
		        //ajax请求失败处理
		        onError:function(datagrid){
		        	console.log("数据请求发生错误!");
		        },
		        //ajax请求成功返回,表格加载完毕后的处理
		         onLoadSuccess: function(obj){
		        	 console.log("表格加载成功!");
		         }   
	})
	
	
	
})

数据通过ajax请求过来,也可以给定jsonData展示(不能动态,意义不大)。具体例子下载连接:

http://download.csdn.net/detail/acweilisky0825/9590139

具体的使用例子可见:

http://svn.infowk.com/svncm/pages/bs_oplog.jsp?chechedmenuid=10421&submenu=10420

(样式上稍微有些区别,基本功能一样)

用户名:admin

密码:123456


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值