vaeThink2/public/static/admin_static/lib/jquery.bsgrid/examples/layui/laydate.html

94 lines
4.1 KiB
HTML
Raw Normal View History

2020-04-01 11:45:12 +08:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Edit Grid Use Laydate</title>
<!-- grid.all.min.css, grid.all.min.js -->
<link rel="stylesheet" href="../../builds/merged/bsgrid.all.min.css"/>
<script type="text/javascript" src="../../plugins/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../builds/js/lang/grid.en.min.js"></script>
<script type="text/javascript" src="../../builds/merged/bsgrid.all.min.js"></script>
<!-- laydate: only need import laydate.js(auto load css) -->
<script type="text/javascript" src="../../plugins/layui/laydate/laydate.js"></script>
</head>
<body style="background-color: #fff;">
<p />
Note:
<br />1, Laydate v1.1 may not render display none input;
<br />2, Laydate v1.1 may prevent input date change event;
<br />
<br /><input type="button" value="Get Rows Changed Columns value" onclick="getRowsChangedColumnsValue()" />
<p />
<table id="searchTable">
<tr>
<th w_check="true" width="3%;"></th>
<th w_index="XH" width="5%;">XH</th>
<th w_index="ID" width="5%;">ID</th>
<th w_index="CHAR" w_align="left" width="15%;">CHAR</th>
<th w_index="TEXT" w_align="left" width="27%;">TEXT</th>
<th w_edit="datetime" w_index="DATE" width="15%;">DATE</th>
<th w_index="TIME" width="15%;">TIME</th>
<th w_index="NUM" width="5%;">NUM</th>
<th w_render="operate" width="10%;">Operate</th>
</tr>
</table>
<script type="text/javascript">
var gridObj;
$(function () {
gridObj = $.fn.bsgrid.init('searchTable', {
//autoLoad: false,
url: '../grid/data/json.jsp',
pageSizeSelect: true,
pageSize: 5,
extend: {
settings: {
supportGridEdit: true, // default false, if support extend grid edit
supportGridEditTriggerEvent: '', // default 'rowClick', values: ''(means no need Trigger), 'rowClick', 'rowDoubleClick', 'cellClick', 'cellDoubleClick'
gridEditConfigs: {
datetime: {
build: function (edit, value, record, rowIndex, colIndex, tdObj, trObj, options) {
// Laydate v1.1 may not render display none input, so use onclick
return value + '<input id="date_' + rowIndex + '_' + colIndex + '" class="bsgrid_editgrid_hidden laydate-icon" value="' + value + '" onclick="viewDatetimeChoose(this)" />';
},
val: function (formObj) {
return formObj.val();
}
}
}
}
}
});
});
function viewDatetimeChoose(formObj) {
laydate({
elem: '#' + $.bsgrid.adaptAttrOrProp($(formObj), 'id'),
format: 'YYYY-MM-DD hh:mm:ss',
istime: true,
choose: function (newVal) {
// Laydate v1.1 may prevent input date change event, so trigger it manually
$(formObj).val(newVal).change(); // only trigger change, and value may not change
}
});
}
function getRowsChangedColumnsValue() {
var valsStr = '';
$.each(gridObj.getRowsChangedColumnsValue(), function (key, object) {
valsStr += '\n' + key + ' [';
var cvalsStr = '';
$.each(object, function (ckey, cvalue) {
cvalsStr += ', ' + ckey + ': ' + cvalue;
});
valsStr += cvalsStr.substring(2) + ']';
});
alert(valsStr.length > 0 ? valsStr.substring(1) : '');
}
function operate(record, rowIndex, colIndex, options) {
return '<a href="#" onclick="alert(\'ID=' + gridObj.getRecordIndexValue(record, 'ID') + '\');">Operate</a>';
}
</script>
</body>
</html>