wzp
2021-09-01 2891fe0769189be39c9634b2cbc1841dbd52d022
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!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>Grid Extend</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.zh-CN.min.js"></script>
    <script type="text/javascript" src="../../builds/merged/bsgrid.all.min.js"></script>
</head>
<body style="background-color: #fff;">
<table id="searchTable">
    <tr>
        <th w_index="ID" width="3%;">ID</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_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">
    //extend init grid methods
    $.bsgrid.forcePushPropertyInObject($.fn.bsgrid.defaults.extend.initGridMethods, 'extend_init', function(gridId, options){
        console.log('extend init method.');
    });
    // extend before render grid methods
    $.bsgrid.forcePushPropertyInObject($.fn.bsgrid.defaults.extend.beforeRenderGridMethods, 'extend_before_render_grid', function(parseSuccess, gridData, options){
        console.log('extend before render grid method.');
    });
    // extend render per column methods, no matter blank column or not blank column
    $.bsgrid.forcePushPropertyInObject($.fn.bsgrid.defaults.extend.renderPerColumnMethods, 'extend_render_per_column', function(record, rowIndex, colIndex, tdObj, trObj, options){
        var val = gridObj.getRecordIndexValue(record, gridObj.getColumnModel(colIndex).index);
        if(val.length > 30){
            tdObj.css('background-color', 'blue');
        }else if(val.length < 5 && !isNaN(parseInt(val)) && parseInt(val) < 95){
            tdObj.css('background-color', 'green');
        }
        console.log('extend render per column method.');
    });
    // extend render per row methods, no matter blank row or not blank row, after render per column methods
    $.bsgrid.forcePushPropertyInObject($.fn.bsgrid.defaults.extend.renderPerRowMethods, 'extend_render_per_row', function(record, rowIndex, trObj, options){
        if(rowIndex % 2 == 0){
            trObj.find('td').css('background-color', 'pink');
        }
        console.log('extend render per row.');
    });
    // extend after render grid methods
    $.bsgrid.forcePushPropertyInObject($.fn.bsgrid.defaults.extend.afterRenderGridMethods, 'extend_after_render_grid', function(parseSuccess, gridData, options){
        console.log('extend after render grid method.');
    });
    
    var gridObj;
    $(function () {
        gridObj = $.fn.bsgrid.init('searchTable', {
            //autoLoad: false,
            url: 'data/json.jsp',
            pageSizeSelect: true,
            pageSize: 10
        });
    });
 
    function operate(record, rowIndex, colIndex, options) {
        return '<a href="#" onclick="alert(\'ID=' + gridObj.getRecordIndexValue(record, 'ID') + '\');">Operate</a>';
    }
</script>
</body>
</html>