JQuery Easy Ui dataGrid 数据表格 -->转

摘要:
数据表中显示的数据是表的形式,为选择、排序、分组和编辑数据提供了丰富的支持。此数据表旨在缩短开发时间,并要求开发人员不具备特定知识。单元格合并、多列标题、冻结列和页脚只是其功能的一小部分。取决于组件布局-面板缩放-可调整大小的链接按钮-链接按钮分页-分页使用该方法从现有表单元素创建数据表并定义行,html中的列和数据代码名称价格001name12323002name24612代码名称价格001name12323002name24612标签创建的DataGrid代码名称价格名称price使用JavaScript创建数据表。$数据网格;$。数据网格;数据更改与服务器交互以刷新当前数据。

转至: http://www.cnblogs.com/cnjava/archive/2013/01/21/2869876.html#events

 

数据表格 - DataGrid

内容

继承$.fn.panel.defaults,使用$.fn.datagrid.defaults重载默认值。.

数据表格显示的数据以表格的形式提供了丰富的选择,排序,分组和编辑数据支持这个数据表格被设计以缩短开发时间,并要求开发商没有具体的知识轻量级的,功能丰富的单元格合并列标题冻结列和页脚是其功能只是一小部分

JQuery Easy Ui dataGrid 数据表格 -->转第1张

依赖组件(Dependencies)

使用方法(Usage Example)

现有的表单元素创建数据表格定义在html中行,列和数据

 
  1. <tableclass="easyui-datagrid"> 
  2.     <thead> 
  3.         <tr> 
  4.             <thdata-options="field:'code'">Code</th> 
  5.             <thdata-options="field:'name'">Name</th> 
  6.             <thdata-options="field:'price'">Price</th> 
  7.         </tr> 
  8.     </thead> 
  9.     <tbody> 
  10.         <tr> 
  11.             <td>001</td><td>name1</td><td>2323</td> 
  12.         </tr> 
  13.         <tr> 
  14.             <td>002</td><td>name2</td><td>4612</td> 
  15.         </tr> 
  16.     </tbody> 
  17. </table> 

通过<TABLE>标记创建的DataGrid嵌套的<TH>标签定义的列表。

 
  1. <tableclass="easyui-datagrid"style="400px;height:250px" 
  2.         data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true"> 
  3.     <thead> 
  4.         <tr> 
  5.             <thdata-options="field:'code',100">Code</th> 
  6.             <thdata-options="field:'name',100">Name</th> 
  7.             <thdata-options="field:'price',100,align:'right'">Price</th> 
  8.         </tr> 
  9.     </thead> 
  10. </table> 

使用JavaScript创建数据表格。

 
  1. <tableid="dg"></table> 

 
  1. $('#dg').datagrid({  
  2.     url:'datagrid_data.json',  
  3.     columns:[[  
  4.         {field:'code',title:'Code',100},  
  5.         {field:'name',title:'Name',100},  
  6.         {field:'price',title:'Price',100,align:'right'}  
  7.     ]]  
  8. }); 

查询数据填充数据表格。

 
  1. $('#dg').datagrid('load', {  
  2.     name: 'easyui',  
  3.     address: 'ho' 
  4. }); 

数据更改与服务器交互,刷新当前数据。

 
  1. $('#dg').datagrid('reload');    // reload the current page data 

数据表格属性(DataGrid Properties)

属性继承控制面板,以下是数据表格独有的属性。

名称类型描述默认值
columnsarray数据表格列配置对象,查看列属性以获取更多细节。undefined
frozenColumnsarray跟列属性一样,但是这些列固定在左边,不会滚动。undefined
fitColumnsboolean设置为true将自动使列适应表格宽度以防止出现水平滚动。false
autoRowHeightboolean定义设置行的高度根据该行的内容设置为false可以提高负载性能true
toolbararray,selector数据表格顶部面板的工具栏可能的值:1)数组,每个工具选项和链接按钮相同2)选择显示工具栏一个<div>标签定义工具栏:
$('#dg').datagrid({
	toolbar: '#tb'
});
<div id="tb">
<a href="http://t.zoukankan.com/ry123-p-3168614.html#"   data-options="iconCls:'icon-edit',plain:true"/a>
<a href="http://t.zoukankan.com/ry123-p-3168614.html#"   data-options="iconCls:'icon-help',plain:true"/a>
</div>

通过数组定义工具栏:

$('#dg').datagrid({
	toolbar: [{
		iconCls: 'icon-edit',
		handler: function(){alert('edit')}
	},'-',{
		iconCls: 'icon-help',
		handler: function(){alert('help')}
	}]
});
null
stripedboolean设置为true将交替显示行背景。false
methodstring请求远程数据的方法类型。post
nowrapboolean设置为true,当数据长度超出列宽时将会自动截取。true
idFieldstring表明该列是一个唯一列。null
urlstring一个用以从远程站点请求数据的超链接地址。null
loadMsgstring当从远程站点载入数据时,显示的一条快捷信息。Processing, please wait …
paginationboolean设置true将在数据表格底部显示分页工具栏。false
rownumbersboolean设置为true将显示行数。false
singleSelectboolean设置为true将只允许选择一行。false
checkOnSelectboolean如果为true,该复选框被选中/取消选中,当用户点击某一行上如果为false,该复选框检查/取消选中,当用户点击完全的复选框此属性是1.3版本true
selectOnCheckboolean如果设置为true单击一个复选框,将始终选择如果为false,不会选择行选中该复选框此属性是1.3版本true
pagePositionstring定义分页位置可用的值有'top','bottom','both'此属性是1.3版本bottom
pageNumbernumber当设置分页属性时,初始化分页码。1
pageSizenumber当设置分页属性时,初始化每页记录数。10
pageListarray当设置分页属性时,初始化每页记录数列表。[10,20,30,40,50]
queryParamsobject当请求远程数据时,发送的额外参数。

示例:

$('#dg').datagrid({
	queryParams: {
		name: 'easyui',
		subject: 'datagrid'
	}
});
{}
sortNamestring当数据表格初始化时以哪一列来排序。null
sortOrderstring定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。asc
remoteSortboolean定义是否通过远程服务器对数据排序。true
showFooterboolean定义是否显示行底(如果是做统计表格,这里可以显示总计等)。false
rowStylerfunction返回样式,如:'background:red',function有2个参数: index:行索引,从0开始. row:对应于该行记录的对象。

示例:

$('#dg').datagrid({
	rowStyler: function(index,row){
		if (row.listprice>80){
			return 'background-color:#6293BB;color:#fff;';
		}
	}
});
 
loaderfunction定义如何从远程服务器加载数据返回false可以取消该操作这个函数接受以下参数:param: 参数对象传递到远程服务器。success(data): 回调函数将被调用成功检索的数据error():回调函数将被调用失败时检索数据json loader
loadFilterfunction返回过滤的数据显示该函数需要一个参数'data'表示原始数据您可以更改源数据的标准数据格式此函数必须返回标准数据对象中包含的“total”“rows”的属性

示例:

// removing 'd' object from asp.net web service json output
$('#dg').datagrid({
	loadFilter: function(data){
		if (data.d){
			return data.d;
		} else {
			return data;
		}
	}
});
 
editorsobject定义当编辑一行时的编辑模式。predefined editors
viewobject定义数据表格的视图。default view

列属性(Column Properties)

数据表格的列是一个对象数组,即这个对象中的元素也是一个数组(js中数组是对象)。 对象数组中的每一个元素都是可配置的对象,每个可配置对象定义一个列。

示例:

 
  1. columns:[[  
  2.     {field:'itemid',title:'Item ID',rowspan:2,80,sortable:true},  
  3.     {field:'productid',title:'Product ID',rowspan:2,80,sortable:true},  
  4.     {title:'Item Details',colspan:4}  
  5. ],[  
  6.     {field:'listprice',title:'List Price',80,align:'right',sortable:true},  
  7.     {field:'unitcost',title:'Unit Cost',80,align:'right',sortable:true},  
  8.     {field:'attr1',title:'Attribute',100},  
  9.     {field:'status',title:'Status',60}  
  10. ]] 

名称类型描述默认值
titlestring列标题。undefined
fieldstring列字段。undefined
widthnumber列宽。undefined
rowspannumber表明一个单元格跨几行。undefined
colspannumber表明一个单元格跨几列。undefined
alignstring表明如何对其列数据,可选值:'left','right','center'。undefined
sortableboolean设置为true允许对该列排序。undefined
resizableboolean设置为true允许该列被缩放。undefined
hiddenboolean设置为true将隐藏列。undefined
checkboxboolean设置为true将显示复选框。undefined
formatterfunction格式化单元格函数,有3个参数: value:字段的值。 rowData:行数据。 rowIndex:行索引。

示例:

$('#dg').datagrid({
	columns:[[
		{field:'userId',title:'User', 80,
			formatter: function(value,row,index){
				if (row.user){
					return row.user.name;
				} else {
					return value;
				}
			}
		}
	]]
});
undefined
stylerfunction单元格样式函数,返回样式字符串装饰表格如'background:red',function有3个参数: value:字段值。 rowData:行数据。 rowIndex:行索引。

示例:

$('#dg').datagrid({
	columns:[[
		{field:'listprice',title:'List Price', 80, align:'right',
			styler: function(value,row,index){
				if (value < 20){
					return 'background-color:#ffee00;color:red;';
				}
			}
		}
	]]
});
undefined
sorterfunctionT自定义字段排序函数,有2个参数: a:该列的第一个值。 b:该列的第二个值。

示例:

$('#dg').datagrid({
	remoteSort: false,
	columns: [[
		{field:'date',title:'Date',80,sortable:true,align:'center',  
			sorter:function(a,b){  
				a = a.split('/');  
				b = b.split('/');  
				if (a[2] == b[2]){  
					if (a[0] == b[0]){  
						return (a[1]>b[1]?1:-1);  
					} else {  
						return (a[0]>b[0]?1:-1);  
					}  
				} else {  
					return (a[2]>b[2]?1:-1);  
				}  
			}  
		}
	]]
});
undefined
editorstring,object表明编辑类型。如果属性是字符串类型表示编辑类型,如果是对象则包含2个参数: type:字符串,编辑类型,可选值:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree。 options:对象,对象于编辑类型的编辑器属性。undefined

编辑器(Editor)

使用$.fn.datagrid.defaults.editors重载默认值。

每个编辑器都有以下方法:

名称属性描述
initcontainer, options初始化编辑器并返回目标对象。
destroytarget注销编辑器。
getValuetarget获取编辑框的值。
setValuetarget , value设置编辑框的值。
resizetarget , width调整编辑器

如下代码将定义一个文本编辑器:

 
  1. $.extend($.fn.datagrid.defaults.editors, {   
  2.     text: {  
  3.         init: function(container, options){  
  4.             var input = $('<input type="text" class="datagrid-editable-input">').appendTo(container);   
  5.             return input;  
  6.         },  
  7.         getValue: function(target){  
  8.             return $(target).val();  
  9.         },  
  10.         setValue: function(target, value){  
  11.             $(target).val(value);  
  12.         },  
  13.         resize: function(target, width){  
  14.             var input = $(target);  
  15.             if ($.boxModel == true){  
  16.                 input.width(width - (input.outerWidth() - input.width()));   
  17.             } else {   
  18.                 input.width(width);  
  19.             }  
  20.         }  
  21.     }  
  22. }); 

数据表格视图(DataGrid View)

使用$.fn.datagrid.defaults.view重载默认值。

视图是一个告诉数据表格如何呈现行记录的对象,对象必须定义以下方法:

名称属性描述
rendertarget, container, frozen当数据载入时调用。 target: DOM对象,数据网格对象。 container: 行记录容器。 frozen: 是否呈现固定容器。
renderFootertarget, container, frozen这是一个可选函数用以展现行底。
renderRowtarget, fields, frozen, rowIndex, rowData这是一个可选函数,它可以被render函数调用。
refreshRowtarget, rowIndex定义如何刷新指定的行。
onBeforeRendertarget, rows在视图被呈现之前触发。
onAfterRendertarget在视图被程序之后触发。

事件(Events)

事件继承控制面板,以下是数据表格独有的属性。

名称属性描述
onLoadSuccessdata当数据载入成功时触发。
onLoadErrornone当载入远程数据发生错误时触发。
onBeforeLoadparam在请求载入数据之前触发,如果返回false将取消载入。
onClickRowrowIndex, rowData当用户点击行时触发,参数如下: rowIndex:被点击的行索引,从0开始。 rowData:对应于被点击的行的记录。
onDblClickRowrowIndex, rowData当用户双击一行时触发,参数如下: rowIndex:被点击的行索引,从0开始。 rowData:对应于被点击的行的记录。
onClickCellrowIndex, field, value当用户点击单元格时触发。
onDblClickCellrowIndex, field, value当用户双击单元格时触发。

示例:

// when double click a cell, begin editing and make the editor get focus
$('#dg').datagrid({
	onDblClickCell: function(index,field,value){
		$(this).datagrid('beginEdit', index);
		var ed = $(this).datagrid('getEditor', {index:index,field:field});
		$(ed.target).focus();
	}
});
onSortColumnsort, order当用户对列排序时触发,参数如下: sort:排序字段名称。 order:排序顺序。
onResizeColumnfield, width当用户调整列宽时触发。
onSelectrowIndex, rowData当用户选择一行是触发,参数如下: rowIndex:被选择的行索引,从0开始。 rowData:对应于被选择行的记录。
onUnselectrowIndex, rowData当用户取消选择一行时触发,参数如下: rowIndex:被取消选择的行索引,从0开始。 rowData:对应于被取消选择行的记录。
onSelectAllrows当用户选择所有行时触发。
onUnselectAllrows当用户取消选择所有行时触发。
onCheckrowIndex,rowData当用户选中行时触发参数包含rowIndex选中行的索引从0开始rowData选中对应的记录此属性是1.3版本
onUncheckrowIndex,rowData用户取消选中行时触发参数包含rowIndex取消选中行的索引从0开始rowData未经检查的对应的记录此属性是1.3版本
onCheckAllrows当用户检查所有行时触发此属性是1.3版本
onUncheckAllrows用户取消所有触发此属性是1.3版本
onBeforeEditrowIndex, rowData当用户开始编辑一行时触发,参数如下: rowIndex:正在编辑的行索引,从0开始。 rowData:对应于正在编辑的行的记录。
onAfterEditrowIndex, rowData, changes当用户编辑完成时触发,参数如下: rowIndex:正在编辑的行索引,从0开始。 rowData:对应于正在编辑的行的记录。 changes:被改变的字段内容,对应方式为字段:值。
onCancelEditrowIndex, rowData当用户取消编辑行时触发,参数如下: rowIndex:正在编辑的行索引,从0开始。 rowData:对应于正在编辑的行的记录。
onHeaderContextMenue, field当数据表格的列标题被鼠标右键单击时触发。
onRowContextMenue, rowIndex, rowData当一行被鼠标右键单击时触发。

方法(Methods)

名称属性描述
optionsnone返回属性对象。
getPagernone返回页面对象。
getPanelnone返回控制面板对象。
getColumnFieldsfrozen返回列字段,如果设置了frozen属性为true,将返回固定列的字段名。 示例:
var opts = $('#dg').datagrid('getColumnFields');	// get unfrozen columns
var opts = $('#dg').datagrid('getColumnFields', true); // get frozen columns
getColumnOptionfield返回特定的列属性。
resizeparam缩放和布局。
loadparam载入并显示第一页的记录,如果传递了'param'参数,它将会覆盖查询参数属性的值通过传递一些参数通常做一个查询,这个方法可以被称为从服务器加载新数据
$('#dg').datagrid('load',{
	code: '01',
	name: 'name01'
});
reloadparam重载记录,跟'load'方法一样但是重载的是当前页的记录而非第一页。
reloadFooterfooter重载行底记录。 示例:
// update footer row values and then refresh
var rows = $('#dg').datagrid('getFooterRows');
rows[0]['name'] = 'new name';
rows[0]['salary'] = 60000;
$('#dg').datagrid('reloadFooter');

// update footer rows with new data
$('#dg').datagrid('reloadFooter',[
	{name: 'name1', salary: 60000},
	{name: 'name2', salary: 65000}
]);
loadingnone显示载入状态。
loadednone隐藏载入状态。
fitColumnsnone让列宽自动适应数据表格的宽度。
fixColumnSizefield固定列尺寸。如果“field' 参数未指定,所有列大小固定

示例:

$('#dg').datagrid('fixColumnSize', 'name');  // fix the 'name' column size
$('#dg').datagrid('fixColumnSize');  // fix all columns size
fixRowHeightindex固定特定列的高度。如果“index' 参数未指定,所有列高度固定
autoSizeColumnfield自动调整列宽以适应内容方法是1.3版本特有的
loadDatadata载入本地数据,旧记录将被移除。
getDatanone返回已载入数据。
getRowsnone返回当前页的记录。
getFooterRowsnone返回行底记录。
getRowIndexrow返回指定行的索引,row参数可以是行记录或者是一个id字段的值。
getCheckednone返回所有行复选框已被选中方法是1.3版本特有的
getSelectednone返回第一个被选择的行记录或null。
getSelectionsnone返回所有被选择的行,当没有记录被选择时,将返回一个空数组。
clearSelectionsnone取消所有的已选择项。
selectAllnone选择所有页面的行
unselectAllnone取消选择所有页面的行
selectRowindex选择一行,行索引从0开始。
selectRecordidValue通过传递id参数来选择一行。
unselectRowindex取消选择一行。
checkAllnone检查所有页面的行方法是1.3版本特有的
uncheckAllnone取消检查所有当前页面的行方法是1.3版本特有的
checkRowindex检查行索引从0开始。方法是1.3版本特有的
uncheckRowindex取消检查行索引从0开始。方法是1.3版本特有的
beginEditindex开始编辑一行。
endEditindex结束编辑。
cancelEditindex取消编辑。
getEditorsindex获取指定行的编辑器,每个编辑器有如下属性: actions:编辑器可以做的行为。 target:目标编辑器jQuery对象。 field:字段名。 type:编辑器类型。
getEditoroptions获取特定的编辑器,options参数有2个属性: index:行索引。 field:字段名。

示例:

// get the datebox editor and change its value
var ed = $('#dg').datagrid('getEditor', {index:1,field:'birthday'});
$(ed.target).datebox('setValue', '5/4/2012');
refreshRowindex刷新一行。
validateRowindex校验指定的行,如果有效返回true。
updateRowparam更新指定的行,param参数包含如下属性: index:要更新的行索引。 row:新的行数据。

示例:

$('#dg').datagrid('updateRow',{
	index: 2,
	row: {
		name: 'new name',
		note: 'new note message'
	}
});
appendRowrow添加一行。 新的行会被添加到最后一个位置:
$('#dg').datagrid('appendRow',{
	name: 'new name',
	age: 30,
	note: 'some messages'
});
insertRowparam
插入一个新行,param参数包含如下属性: index:要插入的行索引,如果没有定义则在最后面添加一个新行。 row:行数据。
示例:
// insert a new row at second row position
$('#dg').datagrid('insertRow',{
	index: 1,	// index start with 0
	row: {
		name: 'new name',
		age: 30,
		note: 'some messages'
	}
});
deleteRowindex删除一行。
getChangestype获取从最后一次提交开始的被修改的所有行,type参数表明修改的类型,可选值:inserted,deleted,updated等 。当没有传递type参数时,返回所有被修改的行。
acceptChangesnone提交所有修改的数据,提交后的数据将不能再修改或者回滚。
rejectChangesnone回滚自创建以来自上次调用AcceptChanges所有的变化数据
mergeCellsoptions合并单元格,options参数包含如下属性: index:行索引。 field:字段名。 rowspan:整合单元格要跨的行数。 colspan:整合单元格要跨的列数。
showColumnfield显示特定的列。
hideColumnfield隐藏特定的列。
复制代码
  1     /////////////////////////////////////////////
  2         //初始化数据
  3     function initGrid()
  4         {  
  5             $('#grid').datagrid({
  6                 '100%',    
  7                 height:'auto',
  8                 nowrap: true,
  9                 striped: true,
 10                 fitColumns:false,
 11                 url:'${contextPath}/cardGift/cardGift.do?method=getCardGiftList&activeId=${information.cardGiftActive.activeId}',
 12                 queryParams:queryParam,
 13                 remoteSort:false,
 14                 //Grid对应的主键列
 15                 idField:'',
 16                 singleSelect:true,
 17                 columns:[[
 18                         {field:'serial',title:'',15,checkbox:true},
 19                         {field:'activeName',title:'活动名称',50,sortable:true},
 20                         {field:'giftGoodId',title:'赠品商品编码',80},
 21                         {field:'goodsName',title:'商品名称',120},
 22                         {field:'giftCodeTotal',title:'赠品码生成数量',100},
 23                         {field:'genCodeNumber',title:'已生成赠品码数量',100},
 24                         {field:'startTime',title:'赠品发放起始时间',125},
 25                         {field:'endTime',title:'赠品发放结束时间',125},
 26                         {field:'memo',title:'备注',120}
 27                 ]],
 28                 pagination:true,
 29                 rownumbers:true,
 30                 toolbar:[
 31                 '-',{
 32                     id:'btnClearSelections',
 33                     text:'修改活动商品',
 34                     iconCls:'icon-edit',
 35                     handler:function(){
 36                         editData();
 37                     }
 38                 },'-',{
 39                     id:'btnDel',
 40                     text:'删除活动商品',
 41                     iconCls:'icon-no',
 42                     handler:function(){
 43                         deleteData();
 44                     }
 45                 },
 46                 '-',{
 47                     id:'btnClearSelections',
 48                     text:'清除选择',
 49                     iconCls:'icon-cut',
 50                     handler:function(){
 51                         $('#grid').datagrid('clearSelections');
 52                         //设置选中值
 53                         document.addForm.reset();
 54                         $('#giftCodeTotal').val("0");
 55                         $('#memoData').html("");
 56                         $('#submitBtn').html("确认提交");
 57                         $('#submitBtn').attr('onclick',"addSubmit('insert');");
 58                     }
 59                 }],
 60                 onLoadError:function(){
 61                     XW_dialog.alert('','加载数据失败!');
 62                 }
 63                 
 64             });
 65             
 66             //设置分页控件  
 67             var p = $('#grid').datagrid('getPager');  
 68             $(p).pagination(PAGE_TEMPLATE);
 69         }
 70         
 71         
 72         function editData(){
 73             var row = $('#grid').datagrid("getSelections");
 74             if($(row).length < 1 || $(row).length > 1)
 75             {
 76                 XW_dialog.alert('',"请选择要查看的记录,只能选取单行!");
 77                 return ;
 78             }
 79             //设置默认选中
 80             $('#goodsSelect').combogrid('grid').datagrid('selectRecord',row[0].giftGoodId);
 81             $('#goodsSelect').hide();
 82             //设置选中值
 83             $('#giftCodeTotal').val(row[0].giftCodeTotal);
 84             $('#memoData').html(row[0].memo);
 85             $('#submitBtn').html("更新");
 86             $('#submitBtn').attr('onclick',"addSubmit('update');");
 87             $('#resetBtn').hide();
 88             
 89         }
 90         
 91         
 92         function deleteData(){
 93         var data = $('#grid').datagrid("getSelections");
 94         //删除 
 95         var delurl = "${contextPath}/cardGift/cardGift.do?method=deleteCardGift&activeId="+data[0].activeId+"&giftGoodId="+data[0].giftGoodId;
 96         //发送删除请求
 97         $.ajax({
 98            type: "POST",
 99            dataType:'json',
100            url: delurl,
101            success: function(msg){
102              if(msg.success)
103                 {
104                     //保存回调函数使用的数据
105                     XW_dialog.addData('callbackData',msg.map);
106                     //删除成功
107                     XW_dialog.tips(msg.errorMsg, 3);
108                     deleteCallBack();
109                 }
110                 else
111                 {
112                     XW_dialog.alert('',msg.errorMsg);
113                 }
114            }
115     });
116 }    
117         
118         
119         //删除记录回调函数,默认调用刷新记录方法,
120         function deleteCallBack(){
121             reloadGrid("grid");
122         }
123         
复制代码

免责声明:文章转载自《JQuery Easy Ui dataGrid 数据表格 --&amp;gt;转》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇hostapd 热点设置UOS从安装IE8到放弃IE8下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序知识点总结--组件

一、部分常用组件 1、scroll-view可滚动视图区域:   <scroll-view>标签必须设置scroll-x/scroll-y属性,否则不能实现滚动效果 css设置:<scroll-view>标签可以设置white-space:nowrap,子元素设置display:inline-block(如子元素中有文字需要换行,则...

Java 面向切面编程(Aspect Oriented Programming,AOP)

本文内容 实例 引入 原始方法 装饰者模式 JDK 动态代理和 cglib 代理 直接使用 AOP 框架——AspectWerkz 最近跳槽了,新公司使用了 AOP 相关的技术,于是查点资料,复习一下。之前,多少知道点,但没怎么在实际项目中使用过~ 下载 demo 实例 引入 package com.cap.aop;   publi...

[WPF](小结2)DataGrid嵌套DataGrid(也叫主从表)

DataGrid嵌套DataGrid(也叫主从表),效果为:单击表中某项后,从中间展开一个新表,总表绑定的是题目类大集合,从表绑定的是对应的选项集合. 第一:选构建题目类,再建一个选项类,题目类集合中的每个项包含一个选项类集合,即数组嵌套数组,C#语句如下: (为方便看清语句,类直接写在主程序中) C#代码如下: usingSystem; using...

java 根据实体对象生成 增删改的SQL语句 ModelToSQL

package com.xxx.utils; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.List; import java.util.Vector; import org.apache.commons.lang3....

MySql数据库优化、备份和恢复

一、数据库优化 1、为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 优化原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。 2、数据库结构优化 需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。 将...

libubox

lbubox是openwrt的一个核心库,封装了一系列基础实用功能,主要提供事件循环,二进制格式处理,linux链表实现和一些JSON辅助处理。 它的目的是以动态链接库方式来提供可重用的通用功能,给其他模块提供便利和避免再造轮子。 libubox主要提供三部分功能: 1)提供多种基础通用功能接口,包含链表,平衡二叉树,二进制处理,key-value链表,M...