GVKun编程网logo

Bootstrap 常用标签与样式(bootstrap 标签页)

12

这篇文章主要围绕Bootstrap常用标签与样式和bootstrap标签页展开,旨在为您提供一份详细的参考资料。我们将全面介绍Bootstrap常用标签与样式的优缺点,解答bootstrap标签页的相

这篇文章主要围绕Bootstrap 常用标签与样式bootstrap 标签页展开,旨在为您提供一份详细的参考资料。我们将全面介绍Bootstrap 常用标签与样式的优缺点,解答bootstrap 标签页的相关问题,同时也会为您带来2.Bootstrap常用样式、bootstrap + bootstrap-table + jquery + bootstrap-paginator、Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式、Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结的实用方法。

本文目录一览:

Bootstrap 常用标签与样式(bootstrap 标签页)

Bootstrap 常用标签与样式(bootstrap 标签页)

总结

以上是小编为你收集整理的Bootstrap 常用标签与样式全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

2.Bootstrap常用样式

2.Bootstrap常用样式

1.标题   Bootstrap 和普通的 HTML 页面一样,定义标题都是使用标签 <h1> ~ <h6> ,只不过 Bootstrap 覆盖了其默认的样式,使用其在所有浏览器下显示的效果一样, 为了让非标题元素和标题使用相同的样式,还特意定义了 .h1 ~ .h6 六个类名。同时后面可以紧跟着一行小的标题 <small></small> 或使用 .small 2.段落  
  • 段落是排版中的另一个重要元素之一。
  • 通过.lead 来突出强调内容(其作用就是增大文本字号,加粗文本,而且对行高和margin也做相应的处理)。可以使用以下标签给文本做突出样式处理。
    • <small> :小号字
    • <b><strong>:加粗
    • <i><em>: 斜体
3.强调           定义了一套类名,这里称其为强调类名,这些强调嘞都是通过颜色来表示强调,具体说明如下:  
  •     .text-muted: 提示,使用浅灰色(#999)
  •     .text.primary :主要,使用蓝色(#428bca)
  •     .text-success:成功,使用浅绿色(#3c763d)
  •     .text-info:通知信息,使用浅蓝色(#31708f)
  •     text-warning:警告,使用黄色(#8a6d3n)
  •     text-danger:危险,使用褐色(#a94442)
  4.对齐效果              在CSS中常常使用text-align 来实现文本的对齐风格的设置。         其中主要有4种风格               left    左对齐               right    右对齐               center    居中对齐               justify    两端对齐     Bootstrap 中通过定义四个类名来控制文本的对齐风格         text-left    左对齐       text-right    右对齐       text-center    居中对齐       text-justify    两端对齐   5.列表
  • 无序列表(ul)有序列表(ol)

          移除了默认的 list-style 样式,也就是去掉了原无序列表前面的点 (去掉项目符号(编号))   给列表添加,把垂直列表换成水平列表,而且去掉项目符号(编号),将所有元素放置于同一行。也可以说内联列表就是为了制作水平导航而生的。          给列表添加,把垂直列表换成水平列表,而且去掉项目符号(编号),将所有元素放置于同一行。也可以说内联列表就是为了制作水平导航而生的。
  • 自定义列表(dl <dt><dd>)

    在原有的基础加入了一些样式,使用样式制作水平定义列表,当标题宽度超过 160px 时,将会显示三个省略号。   6.代码     一般在个人博客上使用的较为频繁,用于显示代码的风格。在 Bootstrap 主要提供了三种代码风格:  
  1.     使用<code></code> 来显示单行内联代码
  2.     使用<pre></pre> 来显示多行块代码
  3.     样式pre-scrollable(height,max-height 高度固定为340px,超过则存在滚动条)
  4.     使用<kbd></kbd> 来显示键盘快捷键
  5.    显示htmL标签的代码需要适应字符实体,小于号(<)要使用硬编码“&it;”来替代,大于号(>)使用"&gt;”来替代
    7.表格     : 基础表格
table-striped 斑马线表格
table-bordered 带边框的表格
table-hover 鼠标悬停高亮的表格
table-condensed 紧凑型表格,单元格没内距或者内距较其他表格的内距小

tr、th、td样式

active 将悬停的颜色应用在行或者单元格上
success 表示成功的操作
info 表示信息变化的操作
warning 表示一个警告的操作
danger 表示一个危险的操作
7.表单         文本框和下拉框  
  • 表单元素的样式   下拉选择框select多个选择设置multiple="multuple"
  • :表单控件较大
  • : 表单控件较小
    单选框和复选框  
  • 垂直显示(给input标签加):https://www.jb51.cc/tag/dio/" target="_blank">dio"
  • 水平显示(给label标签加):https://www.jb51.cc/tag/dio/" target="_blank">dio-inline"
  • 垂直显示(给div标签加):https://www.jb51.cc/tag/Box/" target="_blank">Box"
  • 水平显示(给div标签加):https://www.jb51.cc/tag/Box/" target="_blank">Box-inline"
    按钮           基础样式(给button标签加): 
  •           默认样式Default
  •             首选项Primary
  •             成功Success
  •             一般信息Info
  •             警告Warning
  •             危险Danger
  •             链接Link
          多标签支持:使用 a div input 等制作按钮   注意:       虽然按钮类可以应用到 <a> 和 <button> 元素上,但是,导航和导航条组件只支持 <button> 元素。      如果 <a> 元素被作为按钮使用 – 并用于在当前页面触发某些功能 – 而不是用于链接其他页面或链接当前页面中的其他部分,那么,务必为其设置 role="button" 属性。     我们总结的最佳实践是:强烈建议尽可能使用 <button> 元素来获得在各个浏览器上获得相匹配的绘制效果。

设置按钮大小 

        使用 .btn-lg、.btn-sm 或 .btn-xs 就可以获得不同尺寸的按钮
    • 大按钮
    • 小按钮
    • 超小按钮
  为 <button> 元素添加 disabled="disabled" 属性,使其表现出禁用状态,样式添加disable看起来被禁用。     表单布局       基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式。下面列出了创建基本表单的步骤:           向父元素<form> 元素 添加 role="form"         把标签和控件放在一个带有的<div> 中。这是获取最佳间距所必需的         向所有的文本元素 <input> 、<textarea> 、select 添加 

    内联表单(水平布局), 它的所有元素是内联的,向左对齐的,标签是并排的 ,向 <form> 标签添加

    8.缩略图     字体图标
  • 在我们下载的 Bootstrap 加压文件中有 fonts 文件夹,里面就是我们的字体图标
  • 只需将 fonts 文件夹复制到我们的项目红,我们就可以使用字体图标了
  • 字体图标类名地址查看,需要时去复制即可:https://www.runoob.com/try/demo_source/bootstrap3-glyph-icons.htm
  <span> 字体图标 </span>
  缩略图的使用
  • 大多数站点都需要在网格中布局图像、视频、文本等。Bootstrap 通过缩略图为此提供了一种简便的方式
  • 使用 Bootstrap 创建缩略图的步骤如下:
  • 在图像周围添加带有的 <a> 标签。
  • 这会添加四个像素的内边距(padding)和一个灰色的边框。
  • 当鼠标悬停在图像上时,会动画显示出图像的轮廓。
<body>     <div>         <div>             <a href="#">                 <img src="img/timg.jpg" alt="通用的占位符缩略图">             </a>         </div>     </div> </body>
  自定义内容
  • 现在我们有了一个基本的缩略图,我们可以向缩略图添加各种 HTML 内容,比如标题、段落或按钮。具体步骤如下:
  • 把带有的 <a> 标签改为 <div>。
  • 在该 <div>内,您可以添加任何您想要添加的东西。由于这是一个 <div>,我们可以使用默认的基于 span 的命名规则来调整大小。
  • 如果您想要给多个图像进行分组,请把它们放置在一个无序列表中,且每个列表项向左浮动。
   

面板

面板组件用于把 DOM 组件插入到一个盒子中 创建一个基本的面板,只需要向 <div> 元素添加  即可 默认的 .panel 组件所做的只是设置基本的边框 border 和 內补 padding 来包含内容  
<div>      <div> 这是一个基本的面板 </div>  </div>
  给盒子添加 https://www.jb51.cc/tag/heading/" target="_blank">heading" 可以很简单地向面板添加标题。 给盒子添加  可以向面板添加主题内容
<div>     <divhttps://www.jb51.cc/tag/heading/" target="_blank">heading">         <h2>明星合集</h2>     </div>     <div>         <div>             <div>                 <img src="img/timg.jpg" alt="...">                 <h3>高圆圆</h3>                 <p>出生于北京市,中国内地影视女演员、模特。</p>                                  <button>                     <span></span>喜欢</button>                 <button>                     <span></span>评论                 </button>             </div>         </div>     </div> </div>  
 

总结

以上是小编为你收集整理的2.Bootstrap常用样式全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/BingBing-Deng/p/15619102.html

bootstrap + bootstrap-table + jquery + bootstrap-paginator

bootstrap + bootstrap-table + jquery + bootstrap-paginator

 

http://127.0.0.1:8848/pangBo/index.html

 

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
		 crossorigin="anonymous">
		<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
		 crossorigin="anonymous"></script>
		<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/bootstrap-table.min.css">
		<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/bootstrap-table.min.js"></script>
		<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/locale/bootstrap-table-zh-CN.min.js"></script>
		<script src="js/bootstrap-paginator.min.js" type="text/javascript" charset="utf-8"></script>
	</head>

	<body>
		<div>
			<formrole="search">
				<div>
					<div>
						<div>
							<label>客户编号: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
						<div>
							<label>客户姓名: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
						<div>
							<label>手机号码: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
					</div>
					<div>
						<div>
							<label>客户编号: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
						<div>
							<label>客户编号: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
						<div>
							<label>客户编号: </label>
							<div>
								<input type="text"placeholder="">
							</div>
						</div>
					</div>
					<div>
						<button type="submit">查询</button>
					</div>
				</div>
			</form>
		</div>
		<div>
			<divrole="group" aria-label="...">
				<button type="button" id="btn-one">可撤单</button>
				<button type="button" id="btn-two">已撤单</button>
			</div>
		</div>
		<div id="table-one">
			<table id="table"></table>
			<div>
				<div id="example">
					<ul id="pageLimit"></ul>
				</div>
			</div>
		</div>
		<div id="table-two">
			<table id="table-ta-one"></table>
			<div>
				<div id="example-two">
					<ul id="pageLimit-two"></ul>
				</div>
			</div>
		</div>
		<divid="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
			<div>
				<div>
					<div>
						<button type="button"data-dismiss="modal" aria-hidden="true">&times;</button>
						<divid="myModalLabel">请输入登录密码:</div>
					</div>
					<div>
						<div>
							<input id="input-text" type="text" value=""placeholder="">
						</div>
						<button type="button" id="btn-ok">确定撤单</button>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>
<script type="text/javascript">
	function operateFormatter(value, row, index) {
		return [
			''<button type="button"data-toggle="modal" data-target="#myModal">撤单</button>''
		].join('''');
	}
	window.operateEvents = {
		''click .RoleOfdelete'': function(e, value, row, index) {
			console.log(''kkk'');
		}
	};
	$(''#table'').bootstrapTable({
		url: '''', //请求后台的URL(*)
		method: ''GET'', //请求方式(*)
		// toolbar: ''#toolbar'', //工具按钮用哪个容器
		cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
		pagination: false, //是否显示分页(*)
		// pageSize: 10, //每页的记录行数(*)
		// pageNumber: 1, //初始化加载第一页,默认第一页,并记录
		// sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
		uniqueId: "id", //每一行的唯一标识,一般为主键列
		columns: [{
				field: ''id'',
				align: ''center'',
				title: ''交易合同号''
			},
			{
				field: ''ida'',
				align: ''center'',
				title: ''客户编号''
			},
			{
				field: ''idb'',
				align: ''center'',
				title: ''客户姓名''
			},
			{
				field: ''idc'',
				align: ''center'',
				title: ''手机号码''
			},
			{
				field: ''idd'',
				align: ''center'',
				title: ''证件号码''
			},
			{
				field: ''ide'',
				align: ''center'',
				title: ''产品代码''
			},
			{
				field: ''idf'',
				align: ''center'',
				title: ''产品名称''
			},
			{
				field: ''idg'',
				align: ''center'',
				title: ''购买金额''
			},
			{
				field: ''idh'',
				align: ''center'',
				title: ''交易时间''
			},
			{
				field: ''idi'',
				align: ''center'',
				title: ''撤单'',
				events: operateEvents,
				formatter: operateFormatter
			},
		],
		data: [{
				id: 1
			},
			{
				id: 1
			},
			{
				id: 1
			}
		],
		onLoadError: function() {
			showTips("数据加载失败!");
		},

	});
	$(''#table-ta-one'').bootstrapTable({
		url: '''', //请求后台的URL(*)
		method: ''GET'', //请求方式(*)
		// toolbar: ''#toolbar'', //工具按钮用哪个容器
		cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
		pagination: false, //是否显示分页(*)
		// pageSize: 10, //每页的记录行数(*)
		// pageNumber: 1, //初始化加载第一页,默认第一页,并记录
		// sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
		uniqueId: "id", //每一行的唯一标识,一般为主键列
		columns: [{
				field: ''id'',
				align: ''center'',
				title: ''交易合同号''
			},
			{
				field: ''ida'',
				align: ''center'',
				title: ''客户编号''
			},
			{
				field: ''idb'',
				align: ''center'',
				title: ''客户姓名''
			},
			{
				field: ''idc'',
				align: ''center'',
				title: ''手机号码''
			},
			{
				field: ''idd'',
				align: ''center'',
				title: ''证件号码''
			},
			{
				field: ''ide'',
				align: ''center'',
				title: ''产品代码''
			},
			{
				field: ''idf'',
				align: ''center'',
				title: ''产品名称''
			},
			{
				field: ''idg'',
				align: ''center'',
				title: ''购买金额''
			},
			{
				field: ''idh'',
				align: ''center'',
				title: ''交易时间''
			}
		],
		data: [{
				id: 1
			},
			{
				id: 1
			},
			{
				id: 1
			}
		],
		onLoadError: function() {
			showTips("数据加载失败!");
		},

	});
	$(''#btn-one'').click(function() {
		console.log(''kk'');
		$(''#table-one'').show();
		$(''#table-two'').hide();
		$(''#btn-one'').css({
			''background-color'': ''#e6e6e6''
		})
	})
	$(''#btn-two'').click(function() {
		console.log(''kkk'');
		$(''#table-two'').show();
		$(''#table-one'').hide();
		$(''#btn-one'').css({
			''background-color'': ''#FFF''
		})
	})
	$(''#pageLimit'').bootstrapPaginator({
		currentPage: 1, //当前的请求页面。
		totalPages: 100, //一共多少页。
		size: "normal", //应该是页眉的大小。
		bootstrapMajorVersion: 3, //bootstrap的版本要求。
		alignment: "right",
		numberOfPages: 5, //一页列出多少数据。
		itemTexts: function(type, page, current) { //如下的代码是将页眉显示的中文显示我们自定义的中文。
			switch (type) {
				case "first":
					return "首页";
				case "prev":
					return "上一页";
				case "next":
					return "下一页";
				case "last":
					return "末页";
				case "page":
					return page;
			}
		}
	});
	$(''#pageLimit-two'').bootstrapPaginator({
		currentPage: 1, //当前的请求页面。
		totalPages: 100, //一共多少页。
		size: "normal", //应该是页眉的大小。
		bootstrapMajorVersion: 3, //bootstrap的版本要求。
		alignment: "right",
		numberOfPages: 5, //一页列出多少数据。
		itemTexts: function(type, page, current) { //如下的代码是将页眉显示的中文显示我们自定义的中文。
			switch (type) {
				case "first":
					return "首页";
				case "prev":
					return "上一页";
				case "next":
					return "下一页";
				case "last":
					return "末页";
				case "page":
					return page;
			}
		}
	});
	$(''#btn-ok'').click(function() {
		var inputContent = $(''#input-text'').val();
		if (inputContent == '''') {
			alert(''密码不能为空 !'');
		}
		console.log(inputContent);
	})
</script>

 

Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式

Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式

Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式

1. 使用图标的导航栏

使用导航栏样式:

display: none" src="https://pic.jb51.cc/2019/02-06/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt="">
Meta My Test bootstrap Test Bootstrap << 注册 << 登录

样式效果:

2. 分页(Pagination):  是一种无序列表,Bootstrap 像处理其他界面元素一样处理分页。

使用分页样式:

display: none" src="https://pic.jb51.cc/2019/02-06/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt="">
Meta My Test bootstrap < <1 <2 <3 <4 <5 <6 <

样式效果:

3. 标签样式

使用样式:

display: none" src="https://pic.jb51.cc/2019/02-06/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt="">
Meta My Test bootstrap 默认标签 主要标签 成功标签 信息标签 警告标签 危险标签

样式效果:

4. 徽章(Badges):主要用于突出显示新的或未读的项。如需使用徽章,只需要把 添加到链接、Bootstrap 导航等这些元素上即可。

使用徽章样式:

display: none" src="https://pic.jb51.cc/2019/02-06/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt="">
Meta My Test bootstrap 首页 42 动态 留言 3

样式效果:

Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结

Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结

Bootstrap表格插件bootstrap-table配置与应用小结

 

by:授客 QQ1033553122

  1. 1.   测试环境

win7

 

JQuery-3.2.1.min.js

下载地址:

https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js

 

Bootstrap-3.3.7-dist

下载地址:

https://gitee.com/ishouke/front_end_plugin/blob/master/bootstrap-3.3.7.zip

 

bootstrap-table-develop-v1.12.1.zip

下载地址:

https://github.com/wenzhixin/bootstrap-table

https://gitee.com/ishouke/front_end_plugin/blob/master/bootstrap-table-develop-v1.12.1.zip

 

  1. 2.   配置与应用

效果展示

 

HTML代码片段

head设置

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
 
<!-- 上述3meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
{% load staticfiles %}
 
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
<script type="text/javascript" src="{% static  ''website/jquery-3.2.1.min.js'' %}" defer></script>
 
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="{% static ''website/bootstrap-3.3.7-dist/css/bootstrap.min.css'' %}" />
 
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script type="text/javascript" src="{% static  ''website/bootstrap-3.3.7-dist/js/bootstrap.min.js'' %}" defer></script>
 
 
<!-- HTML5 shim  Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js" defer></script>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js" defer></script>
<![endif]-->
 
<!-- Bootstrap-Table -->
<link rel="stylesheet" type="text/css" href="{% static ''website/bootstrap-table-1.12.1-dist/bootstrap-table.min.css'' %}" />
<script type="text/javascript" src="{% static  ''website/bootstrap-table-1.12.1-dist/bootstrap-table.min.js'' %}" defer></script>
<!-- 引入中文语言包,注意:locale files 必须放在bootstrap-table.js后面 -->
<script type="text/javascript" src="{% static  ''website/bootstrap-table-1.12.1-dist/locale/bootstrap-table-zh-CN.min.js'' %}" defer></script>
 
……略
 
</head>

table及toolbar工具条

<div>
<div>
<table id="roleTable"></table>
 
<div id="toolbar">
<div>
<buttondata-toggle="modal" data-target="#roleDialog" id="addBtn">新增
<i></i>
</button>
<buttonid="editBtn">修改
<i></i>
</button>
<buttonid="deleteBtn">删除
<i></i>
</button>
</div>
 
<formid="queryForm">
<div>
<div>
<div>角色名称</div>
<input  type="text"name="roleNameQ" id="roleNameQ" placeholder="请输入角色名称">
</div>
<divid="startTimePicker">
<div>开始时间</div>
<input  type="text"name="startTime" id="startTime" >
<span>
<span></span>
</span>
</div>
<divid="endTimePicker">
<div>结束时间</div>
<input  type="text"name="endTime" id="endTime">
<span>
<span></span>
</span>
</div>
</div>
 
<button type="button" id="queryBtn">查询</button>
</form>
</div>
</div>
</div>

 

 

JS代码片段

数据表初始化配置

 

/**

 * 获取角色表数据

 */

function loadTableData () {

$(''#'' + roleTableID).bootstrapTable({

url: roleTableDataURL, // 服务器数据的加载地址。

method:''get'',     // 服务器数据的请求方式 ''get'' 或 ''post''。

pagination:true,// 在表格底部显示分页信息(显示第 x 到第 x 条记录,总共 x 条记录),翻页条 // 注意:数据页页数超过1页会才展示翻页条

paginationVAlign:''bottom'', // 指定分页条在垂直方向的位置。''top'',''bottom'' 或 ''both''。

sidePagination:''server'', // 设置在哪里进行分页,可选值为 ''client'' 或者 ''server''。注意:设置 ''server''时,必须设置服务器数据地址(url)或者重写ajax方法。

responseHandler:responseHandler, // 加载服务器数据之前的处理程序,可以用来格式化数据。

pageSize:10, // 如果启用分页,设置初始化界面时,默认的每页显示数据条数

pageList:[10, 20, 30, 40, 50, 60, 70, 80, 90, 100, ''All''],  // 如果设置了分页,设置可供选择的页面记录数。设置为 All 或者 Unlimited,则显示所有记录

smartDisplay:false, // 设置为 true 是程序自动判断显示分页信息和 card 视图。这会导致自定义的 pageList不起作用

silentSort:true, // 设置为true将在点击分页按钮时,自动记住排序项。仅在 sidePagination设置为 server时生效

showColumns:true, // 展示内容列下拉框,方便设置展示那些列

showRefresh:true, //   显示刷新按钮

idField:''id'',     // 指定主键列

        //dataField: "data",  //返回的json数组记录(表格数据)的key.默认是"rows", 数据格式: {"total": 0, "rows": []}

checkboxHeader:true, // 如果设置 false,将在列头隐藏全选复选框,反之则显示,设置为ture时,必须设置singleSelect=false 才有效

clickToSelect:true, // 如果设置 true,则在点击行时,自动选中 rediobox 、 checkbox。

singleSelect:false,  //如果设置为true - 禁止多选,否则不禁止多选

striped:true, // 设置为 true 会有隔行变色效果

toolbar:''#toolbar'', // 一个jQuery 选择器,形如#toolbar, .toolbar,指明自定义的 toolbar       

toolbarAlign:''left'', // 指定 toolbar 水平方向的位置。''left'' 或 ''right''。

columns: [{

field: ''checkbox'',

align: ''center'',   // 设置数据对齐方式可选项: ''left'', ''right'', ''center''

halign: ''center'',  // 设置表头标题对齐方式可选项: ''left'', ''right'', ''center''

valign: ''middle'',   // 设置单元格数据的垂直方向上的对齐方式,有:top(靠上)、middle(居中)、bottom(靠下)针对checkbox似乎不起作用

checkbox:true,    // 显示为复选框

width: ''1%'',// 设置列宽度

        },{

field: ''id'',

title: ''角色ID'',

align: ''center'',

halign: ''center'',

valign:''middle'',

sortable:true, // 允许排序列

order:''desc'',  // 默认排序方式升序-asc 降序-desc

width: ''2%'',

        }, {

field: ''name'',

title: ''角色名称'',

align: ''center'',

valign: ''middle'',

halign: ''center'',

width: ''14%''

}, {

field: ''remark'',

title: ''角色描述'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width: ''20%''

}, {

field: ''is_enable'',

title: ''是否启用'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width:''4%''

}, {

field: ''creater'',

title: ''创建人'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width:''7%''

}, {

field: ''create_time'',

title: ''创建时间'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width:''11%''

}, {

field: ''modifier'',

title: ''修改人'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width:''7%''

},{

field: ''modify_time'',

title: ''修改时间'',

valign: ''middle'',

align: ''center'',

halign: ''center'',

width:''11%''

},{

field:''operate'',

title:''操作'',

algin:''left'',

halgin:''center'',

width:''23%'',

events: operateEvents,

formatter:operateFormatter

} ]

    });

}

 

// 加载表格数据

loadTableData();

 

加载服务器数据之前的数据处理(responseHandler)

/**
 * 加载服务器数据之前的处理程序,可以用来格式化数据。
 * 参数:result为从服务器请求到的数据
 * @param result
 */
function responseHandler(result){
if (result.success == ''false'') {
alert(''获取角色信息失败'');
return;
    }
 
// 返回数据,渲染表格
return {
total: result.data.total, //总页数, key名称固定为"total"
rows: result.data.rows    //行数据,key名称必须和bootstrapTable函数中dataField的值保持一致,默认为rows.
};
};
 

格式化操作列

/**
操作列格式化函数
 */
function operateFormatter(value, row, index) {
if (row.is_enable == '''') {
return  ''''+
''<div>'' +
''<button>分配资源&nbsp;<i></i></button>'' +
''<button>修改&nbsp;<i></i></button>'' +
''<button>删除&nbsp;<i></i></button>'' +
''<button>禁用&nbsp;<i></i></button>'' +
''</div>'';
    } else {
return  ''''+
''<div>'' +
''<button>分配资源&nbsp;<i></i></button>'' +
''<button>修改&nbsp;<i></i></button>'' +
''<button>删除&nbsp;<i></i></button>'' +
''<button>启用&nbsp;<i></i></button>'' +
''</div>'';
    }
 
}
 

给操作列按钮注册点击事件

// 给操作按钮注册点击事件

window.operateEvents = {

''click .asign-resource'': function (event, value, row, index) { // 注意click.class之间必须有空格

……略

    },

''click .edit'': function (event, value, row, index) {

……略

 

    },

''click .delete'': function (event, value, row, index) {

……略

    },

''click .switch'': function (event, value, row, index) {

……略

    }

};

 

函数参数说明:

event:jQuery事件(参考Events)。

value:字段名(实践发现,该参数获取到的值为undefined

row:json串格式表示的行数据

index:所点击行的index

 

给toolbar工具条按钮添加点击事件

// 给查询按钮增加点击事件
$(''#'' + queryBtnID).click(function () {
//刷新处理,指定query 的参数,注:此地方指定的参数,仅在当次刷新时使用
 
var dataArray = $(''#'' + queryFormID).serializeArray();
 
var queryContent = {}
$.each(dataArray, function () {
queryContent[this.name] = this.value;
    });
 
// 刷新如果不指定参数刷新:$(tableSelector).bootstrapTable(''refresh'');
$(''#'' + roleTableID).bootstrapTable(''refresh'', {
query: queryContent
});
 
});
 
// 给表格上方的修改按钮绑定点击事件
$(''#'' + editBtnID).click(function() {
editRole(''byTopEditBtn'');
});
 
// 给表格上方的删除按钮绑定点击事件
$(''#'' + deleteBtnID).click(function() {
deleteRole(''byTopDeleteBtn'');
});
 

提交新增、修改表单

/**

 * 提交新增、修改角色表单

 */

$(document).ready(function() {

$(''#'' + roleFormID).submit(function() {

var dataArray = $(''#'' + roleFormID).serializeArray();

 

var data = {};

$.each(dataArray, function () {

data[this.name] = this.value;

        });

 

var csrfToken = getCookie(''csrftoken'');

if (csrfToken == '''') {

alert(''获取Cookie失败'');

return false;

        }

 

if (opType == ''add'') { // 新增

$.ajax({

type: "POST",

url: addRoleURL,

async: false,

data: data,

beforeSend: function (xhr, settings) {

if (!csrfSafeMethod(settings.type) && !this.crossDomain) {

                        xhr.setRequestHeader("X_CSRFTOKEN", csrfToken);

                    }

                },

success: function (result) {

if (result.success == ''true'') {

alert(result.msg);

 

// 顶部插入一条记录

$(''#'' + roleTableID).bootstrapTable(''insertRow'', {index: 0, row: result.data});

$(''#'' + roleTableID).bootstrapTable(''refresh'');

 

// 隐藏模态对话框,并重置数据

$(''#'' + roleDialogID).modal(''hide'');

                    } else {

alert(result.msg + "" + result.reason);

                    }

                },

error: function(XmlHttpRequest, textStatus, errorThrown) {

alert(''新增角色请求失败'' + XmlHttpRequest.responseText);

                }

            });

        } else if (opType == ''update'') { // 修改

data[''id''] = currentRole.id;

$.ajax({

type: "POST",

url: updateRoleURL,

async: false,

data: data,

beforeSend: function (xhr, settings) {

if (!csrfSafeMethod(settings.type) && !this.crossDomain) {

                        xhr.setRequestHeader("X_CSRFTOKEN", csrfToken);

                    }

                },

success: function (result) {

if (result.success == ''true'') {

alert(result.msg);

 

// 在页面上更新角色信息

delete data[''csrfmiddlewaretoken''];

 

// 更新行记录

$(''#'' + roleTableID).bootstrapTable(''updateRow'', {index: parseInt(rowIndex), row:result.data});

 

// 隐藏模态对话框,并重置数据

$(''#'' + roleDialogID).modal(''hide'');

                    } else {

alert(result.msg + "" + result.reason);

// 需要手动关闭模态对话框,所以也会自动重置数据

}

                },

error: function(XmlHttpRequest, textStatus, errorThrown) {

alert(''修改角色请求失败'' + XmlHttpRequest.responseText);

// 需要手动关闭模态对话框,所以也会自动重置数据

}

            });

        }

 

return false; // 避免跳转到django的返回结果数据页

});

});

 

 

插入行

$(''#tableID'').bootstrapTable(''insertRow'', {index: 0, row: result.data});

参数说明:

index 新增行的索引

row  新增行的数据,json串表示

 

更新行

$(''#tableID'').bootstrapTable(''updateRow'', {index: parseInt(rowIndex), row:result.data});

 

参数说明

index 要更新行的索引

row  要更新行的数据据,json串表示

 

修改记录

 

/**

 * 修改角色

 */

function editRole(flag) {

opType = ''update'';

if (flag == ''byTopEditBtn'') { // 通过点击表格上方的修改按钮进入

var rowArray = $(''#'' + roleTableID).bootstrapTable(''getSelections'');

if (rowArray.length <1) {

alert(''请先选择要修改的角色'');

return;

        } else if (rowArray.length >1) {

alert(''每次修改,只能选择一个角色'');

return;

        }

 

// 获取选中行索引

rowIndex = $(''#'' + roleTableID).find(''tbody>tr.selected'').first().attr(''data-index'');

 

currentRole = rowArray[0]; // 记录当前被修改的角色信息

 

data = [{''name'': ''roleName'', ''value'':rowArray[0].name}, {''name'':''roleDesc'', ''value'':rowArray[0].remark}]

    } else if (flag == ''byRowEditBtn'') { // 通过点击行右侧的修改按钮进入

data = [{''name'': ''roleName'', ''value'':currentRole.name}, {''name'':''roleDesc'', ''value'':currentRole.remark}]

    }

 

// 用所选记录信息,填充即将弹出对话框中表单组件值

$.each(data, function () {

$(''#'' + this.name).val(this.value);

    });

 

$(''#'' + roleDialogID).modal(''show''); // 打开修改模态对话框

 

}

 

获取选中行索引

rowIndex = $(''#'' + roleTableID).find(''tbody>tr.selected'').first().attr(''data-index'');

 

这里为啥要获取,为啥可以这么获取?原因是这样的,通过选择表记录行,然后点击表格上方的修改按钮修改对应记录,这种情况下,无法直接获取对应行记录的索引,导致没法更新对应记录行,所以需要获取索引,没找到对应,至于为啥这么获取,是由table 表结构决定的,如下图:

 

 

 

删除记录

/**

 * 删除角色

 */

function deleteRole(flag) {

var idArray = [];

if (flag == ''byTopDeleteBtn'') { // 通过点击表格上方的删除按钮进入

rowArray = $(''#'' + roleTableID).bootstrapTable(''getSelections'');

if (rowArray.length <1) {

alert(''请先选择要删除的角色'');

return;

        }

    } else if (flag == ''byRowDeleteBtn'') { // 通过点击行右侧的删除按钮进入

idArray.push(currentRole.id);

    }

 

var mark = true; // 标记是否删除成功

if (confirm(''是否删除选中记录?'')) {

$.each(rowArray, function() {

idArray.push(this.id);

        });

 

$.ajax({

type: "POST",

url: deleteRoleURL,

async: false,

data: {''idArray'':"" + idArray + ""},

success: function (result) {

if (result.success == ''true'') {

alert(result.msg);

// 批量删除对应记录行

$(''#'' + roleTableID).bootstrapTable(''remove'',{ field: ''id'', values: idArray});

//$(''#'' + roleTableID).bootstrapTable(''refresh'');

} else {

alert(result.msg + "" + result.reason);

                }

            },

error: function(XmlHttpRequest, textStatus, errorThrown) {

alert(''删除角色请求失败'' + XmlHttpRequest.responseText);

            }

        });

    }

}

 

删除记录

$(''#tableID'').bootstrapTable(''remove'',{ field: ''id'', values: idArray});

 

field: 需要删除的行的 field 名称,

values:  需要删除的行的值,类型为数组。

 

获取选中行

$(''#tableID'').bootstrapTable(''getSelections'');

getSelections   返回所选的行,当没有选择任何行的时候返回一个空数组

 

后台代码片段

查询表数据

def role_tabe_data(request):

''''''

获取角色表数据

:param request:

    ''''''

 

if request.method == ''GET'':

        rows = [] # 用于存储记录行

table_data = {"total": 0, "rows": []}

 

try:

            params = request.GET

 

# search = params.get(''search'')          # 通过表格插件自带的搜索框搜索的内容 # 如果要实现,需要确认按哪些列搜索

page_size =  int(params.get(''limit''))  # 每页记录数

offset = int(params.get(''offset''))

            page_index =  offset // page_size + 1  # 第几页数据

 

sort = params.get(''sort'')       # 排序字段 // 初始化页面时,无排序获取值为None

order = params.get(''order'')     # 排序方式

role_name = params.get(''roleNameQ'')   # 角色名称

start_time = params.get(''startTime'') # 开始时间

end_time = params.get(''endTime'')     # 结束时间

 

 

sql_ddl = ''select id, name, remark, is_enable, creater, create_time, modifier,  modify_time from website_role ''

 

if role_name:

                sql_ddl = sql_ddl + "where name like ''%s%s'' " % (role_name, ''%%'')

                temp_mark = 1

else:

                temp_mark = 0

 

if start_time:

if temp_mark:

                    sql_ddl = sql_ddl + "and create_time>=''%s'' " % start_time

else:

                    sql_ddl = sql_ddl + "where create_time>=''%s'' " % start_time

                temp_mark = 1

else:

                temp_mark = 0

 

if end_time:

if temp_mark:

                    sql_ddl = sql_ddl + "and create_time<=''%s'' " % end_time

else:

                    sql_ddl = sql_ddl + "where create_time<=''%s'' " % start_time

 

 

if order and sort:

                sql_ddl = sql_ddl + ''order by %s %s'' % (sort, order)

else:

                sql_ddl = sql_ddl + ''order by id desc'' # 最新创建的排在最前面

 

records = Role.objects.raw(sql_ddl)

            records = json.loads(serializers.serialize(''json'', records), encoding=''utf-8'')

 

            table_data["total"] = len(records)

 

            paginator = Paginator(records, page_size) # 设置每页展示的数据

try:

                page = paginator.page(page_index)

except PageNotAnInteger as e: # 如果请求的页面编号不存在,返回第一页数据

logger.warn(''%s'' % e)

                page = paginator.page(1)

except EmptyPage as e: # 如果请求页面,超出页面范围,返回最后一页数据

logger.warn(''%s'' % e)

                page = paginator.page(paginator.num_pages)

            records = page.object_list

 

for record in records:

                row = {}

                row[''id''] = record[''pk'']

                row.update(record[''fields''])

if row[''is_enable'']:

                    row[''is_enable''] = ''是''

else:

                    row[''is_enable''] = ''否''

rows.append(row)

 

            table_data["rows"] =  rows

            content = {''data'':table_data, ''msg'':''获取角色信息成功'', ''success'':''true'', ''reason'': ''''}

except Exception as e:

            logger.error(''getting roles info data failed: %s'' % e)

            content = {''data'':[], ''msg'':''获取角色信息失败'',  ''success'':''false'', ''reason'': ''%s'' % e}

else:

        logger.error(''only get method allowed for getting roles data'')

        content = {''data'':[], ''msg'':''获取角色信息失败'',  ''success'':''false'', ''reason'': ''only get method allowed for getting roles data''}

return JsonResponse(content)

 

说明:

bootstarp-table默认只支持按单列排序,默认打开页面,请求表数据时,会附加提供以下参数:

order=asc&offset=0&limit=pageSize

 

或者如下(添加了搜索框的情况下)

search=&order=asc&offset=0&limit=pageSize

 

search:前端输入的搜索内容

order:排序方式,asc - 升序 desc - 降序

sort:需要排序的列

offset:偏移

limit:限制查询返回记录数,即每页记录数

 

如下,我们可以通过limit和offset获取要查询要查询页面的索引(索引从1开始)

page_size =  int(params.get(''limit''))  # 每页记录数

offset = int(params.get(''offset''))

page_index =  offset // page_size + # 第几页数据

新增记录

def add_role(request):

''''''

新增角色

    ''''''

if request.method == ''POST'':

try:

            params = request.POST

            creater = str(request.user)

            role_name = params.get(''roleName'')      # 资源名称

role_desc = params.get(''roleDesc'')      # 资源描述

create_time = datetime.now().strftime(''%Y-%m-%d %H:%M:%S'')

 

# 验证数据合法性

if not role_name:

                content = {''msg'':''新增角色失败''''success'':''false'', ''reason'': ''角色名称不能为空''}

return JsonResponse(content)

 

            role_obj = Role(name=role_name,

remark=role_desc,

is_enable=1,

creater = creater,

create_time=create_time)

            role_obj.save()

            data = {''id'':role_obj.id, ''name'':role_name, ''remark'':role_desc, ''is_enable'':'''', ''creater'':str(creater), ''create_time'':create_time, ''modifier'':''-'', ''modify_time'':''-'' }

            content = {''data'':data, ''msg'':''新增角色成功'', ''success'':''true'', ''reason'':''''}

except Exception as e:

            logger.error(''adding role failed: %s'' % e)

            content = {''data'':{}, ''msg'':''新增角色失败''''success'':''false'', ''reason'': ''%s'' % e}

else:

        logger.error(''only post method allowed for adding role data'')

        content = {''data'':{}, ''msg'':''新增角色失败''''success'':''false'', ''reason'': ''only get method allowed for adding role data''}

return JsonResponse(content)

 

修改记录

 

def update_role(request):

''''''

修改角色

    ''''''

if request.method == ''POST'':

try:

            params = request.POST

            modifier = str(request.user)

            id = params[''id'']

            role_name = params[''roleName'']      # 资源名称

role_desc = params[''roleDesc'']      # 资源描述

modify_time = datetime.now().strftime(''%Y-%m-%d %H:%M:%S'')

 

# 数据合法性验证

if not Role.objects.exclude(id=id).exists():

return JsonResponse({''msg'':''修改失败'', ''success'':''false''''reason'': ''角色不存在''})

 

# 更新数据

obj = Role.objects.get(id=id)

            obj.name = role_name

            obj.remark = role_desc

            obj.modify_time = modify_time

            obj.modifier = modifier

            obj.save()

 

            data = { ''name'':role_name, ''remark'':role_desc, ''modify_time'':modify_time, ''modifier'':modifier}  # 返回需要更新的数据,以便页面更新对应行信息

content = {''msg'':''修改成功'', ''data'':data, ''success'':''true'', ''reason'':''''}

except Exception as e:

            logger.error(''updating role failed: %s'' % e)

            content = {''msg'':''修改失败'', ''data'':{}, ''success'':''false'', ''reason'': ''%s'' % e}

else:

        logger.error(''only post method allowed for updating role'')

        content = {''msg'':''修改失败'', ''data'':{}, ''success'':''false'', ''reason'': ''only post method allowed for updating role''}

return JsonResponse(content)

 

删除记录

def delete_role(request):
''''''
删除角色
    ''''''
 
if request.method == ''POST'':
try:
            params = request.POST
            id_list = eval(params.get(''idArray'') + ",") # 如果不加逗号,前端只传递一个参数时,这里获取到的id_list为单个整数值
 
mark = True
reason = ''''
try:
with transaction.atomic():
for id in id_list:
                        role = Role.objects.filter(id=id)
if role.exists():
                            role.delete()
except Exception as e:
                reason = ''deleting role failed: %s'' % e
                logger.error(reason)
                mark = False
 
            if mark:
return JsonResponse({''msg'':''删除成功'', ''success'':''true''''reason'': ''''})
else:
return JsonResponse({''msg'':''删除失败'', ''success'':''false''''reason'': ''%s'' % reason})
except Exception as e:
            logger.error(''deleting role failed: %s'' % e)
            content = {''msg'':''删除失败'', ''success'':''false'', ''reason'': ''%s'' % e}
else:
        logger.error(''only post method allowed for deleting role'')
        content = {''msg'':''删除失败'', ''success'':''false'', ''reason'': ''only post method allowed for deleting role''}
return JsonResponse(content)

 

 

  1. 3.   参考链接

http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/

关于Bootstrap 常用标签与样式bootstrap 标签页的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2.Bootstrap常用样式、bootstrap + bootstrap-table + jquery + bootstrap-paginator、Bootstrap -- 导航栏样式、分页样式、标签样式、徽章样式、Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结等相关内容,可以在本站寻找。

本文标签:

上一篇Bootstrap 列表(bootstrap 列表按钮)

下一篇Bootstrap 响应式布局的实体类(bootstrap响应尺寸)