BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。

 

引用的css:

 

 <link href="@Url.Content("~/Css/bootstrap.min.css")" rel="stylesheet" type="text/css" />

  <link href="@Url.Content("~/Css/bootstrap-table.css")" rel="stylesheet" type="text/css" />

引用的JS:

<script src="../../Scripts/jquery.js" type="text/javascript"></script>

<script src="../../Scripts/bootstrap.min.js" type="text/javascript"></script>

<script src="../../Scripts/bootstrap-table.js" type="text/javascript"></script>

<script src="../../Scripts/bootstrap-table-zh-CN.js" type="text/javascript"></script>

常用方法:

刷新表格:$table.bootstrapTable('refresh');

获取选择的行:$table.bootstrapTable('getSelections');

1.服务端请求:即当数据量大,千百万条数据的情况下,只获取当页条件下的数据。每点击分页或查询都向服务端重新获取分页数据。

 

前端代码:

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
function initTable() {
 
            var queryUrl = '@Url.Content("~/Welcome/QueryList")' '?rnd=' + +Math.random();
 
            $table = $('#table-javascript').bootstrapTable({
 
                method: 'get',
 
                url: queryUrl,
 
                height: $(window).height() - 200,
 
                striped: true,
 
                pagination: true,
 
                singleSelect: false,
 
                pageSize: 50,
 
                pageList: [10, 50, 100, 200, 500],
 
                search: false//不显示 搜索框
 
                showColumns: false//不显示下拉框(选择显示的列)
 
                sidePagination: "server"//服务端请求
 
                queryParams: queryParams,
 
                minimunCountColumns: 2,
 
                columns: [{
 
                    field: 'state',
 
                    checkbox: true
 
                }, {
 
                    field: 'Name',
 
                    title: '姓名',
 
                    width: 100,
 
                    align: 'center',
 
                    valign: 'middle',
 
                    sortable: true,
 
                    formatter: nameFormatter
 
                }, {
 
                    field: 'Gender',
 
                    title: '性别',
 
                    width: 40,
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true,
 
                    formatter: sexFormatter,
 
                    sorter: priceSorter
 
                }, {
 
                    field: 'Birthday',
 
                    title: '出生日期',
 
                    width: 80,
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'CtfId',
 
                    title: '身份证',
 
                    width: 80,
 
                    align: 'middle',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Address',
 
                    title: '地址',
 
                    width: 180,
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Tel',
 
                    title: '固定电话',
 
                    width: 100,
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Mobile',
 
                    title: '手机号码',
 
                    width: 100,
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'operate',
 
                    title: '操作',
 
                    width: 100,
 
                    align: 'center',
 
                    valign: 'middle',
 
                    formatter: operateFormatter,
 
                    events: operateEvents
 
                }],
 
                onLoadSuccess:function(){
 
  
 
                },
 
                onLoadError: function () {
 
                    mif.showErrorMessageBox("数据加载失败!");
 
                }
 
            });
 
        }
 
//传递的参数
 
function queryParams(params) {
 
            return {
 
                pageSize: params.pageSize,
 
                pageIndex: params.pageNumber,
 
                UserName: $("#txtName").val(),
 
                Birthday: $("#txtBirthday").val(),
 
                Gender: $("#Gender").val(),
 
                Address: $("#txtAddress").val(),
 
                name: params.sortName,
 
                order: params.sortOrder
 
            };
 
        }

  

服务器端代码:

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
74
75
76
77
78
79
80
81
82
83
84
85
public ActionResult QueryList(int pageIndex = 1, int pageSize = 100)
 
        {
 
            try
 
            {
 
                string name = Request["UserName"];
 
                string birthday = Request["Birthday"];
 
                string gender = Request["Gender"];
 
                string Address = Request["Address"];
 
                Document docQuery = new Document();
 
                if (!string.IsNullOrEmpty(name))
 
                {
 
                    docQuery.Add("Name"new MongoRegex(".*" + name + ".*", MongoRegexOption.IgnoreCase));
 
                }
 
                if (!string.IsNullOrEmpty(birthday))
 
                {
 
                    docQuery.Add("Birthday"new MongoRegex(".*" + birthday + ".*", MongoRegexOption.IgnoreCase));
 
                }
 
                if (!string.IsNullOrEmpty(gender))
 
                {
 
                    docQuery.Add("Gender", gender);
 
                }
 
                if (!string.IsNullOrEmpty(Address))
 
                {
 
                    docQuery.Add("Address"new MongoRegex(".*" + Address + ".*", MongoRegexOption.IgnoreCase));
 
                }
 
                if (this.HttpContext.Request.QueryString.AllKeys.Contains("ToExcel"))
 
                {
 
                    List<OpenRoom> listExport = MongoDbHelper.GetList<OpenRoom>(MongoTables.OpenRoom, docQuery);
 
                    //List<string> listTilte = new List<string> { "" };
 
                    ExportMethod(listExport);
 
                }
 
                long totalCount = MongoDbHelper.GetTotalCount<OpenRoom>(MongoTables.OpenRoom, docQuery);
 
                var list = MongoDbHelper.GetList<OpenRoom>(MongoTables.OpenRoom, docQuery, new Document(), pageIndex, pageSize);
 
                string jsonString = JsonHelper.ObjToJson(list);
 
                jsonString = "{\"total\":" + totalCount.ToString() + ",\"rows\":" + jsonString + "}";
 
                return Content(jsonString);
 
            }
 
            catch (Exception ex)
 
            {
 
                return Content(ex.Message);
 
            }
 
  
 
        }

  

注意返回的格式:要返回总记录数total及分页后数据rows。

未解决问题:导出Excel时,超出65536行数据时,会异常。怎样解决这个问题?

2.客户端请求:当数据量较少,只有上千条数据时,一次性将所有数据返回给客户端,无论点下一页,或搜索条件时,不向服务端发请求,实现全文检索。

这个比较简单,将sidePagination属性设为 "client",因为客户端会处理分页和全文检索,无需向服务器端发请求,所以也无需传递参数。

 

前端JS:

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
function initTable() {
 
            var queryUrl = '@Url.Content("~/UserInfo/QueryList")' '?rnd=' + +Math.random();
 
            $table = $('#table-javascript').bootstrapTable({
 
                method: 'get',
 
                url: queryUrl,
 
                height: $(window).height() - 200,
 
                striped: true,
 
                pagination: true,
 
                pageSize: 50,
 
                pageList: [10, 25, 50, 100, 200],
 
                search: true,
 
                sidePagination: "client",
 
                showColumns: true,
 
                minimunCountColumns: 2,
 
                columns: [{
 
                    field: 'state',
 
                    radio: true
 
                }, {
 
                    field: 'Id',
 
                    title: 'ID',
 
                    align: 'right',
 
                    valign: 'bottom',
 
                    sortable: true
 
                }, {
 
                    field: 'UserName',
 
                    title: '姓名',
 
                    width: 100,
 
                    align: 'center',
 
                    valign: 'middle',
 
                    sortable: true,
 
                    formatter: nameFormatter
 
                }, {
 
                    field: 'Account',
 
                    title: '账号',
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Address',
 
                    title: '家乡',
 
                    align: 'middle',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Phone',
 
                    title: '电话',
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'QQ',
 
                    title: 'QQ号码',
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'Remark',
 
                    title: '备注',
 
                    align: 'left',
 
                    valign: 'top',
 
                    sortable: true
 
                }, {
 
                    field: 'operate',
 
                    title: '操作',
 
                    align: 'center',
 
                    width: 100,
 
                    valign: 'middle',
 
                    formatter: operateFormatter,
 
                    events: operateEvents
 
                }]
 
            });
 
        }

  

后台直接返回Json数据即可。

后台代码:

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
public ActionResult QueryList()
 
        {
 
            try
 
            {
 
                List<sys_user> list = accessHelper.GetUserList();
 
                string jsonString = JsonHelper.ObjToJson(list);
 
                return Content(jsonString);
 
            }
 
            catch (Exception ex)
 
            {
 
                return Content(ex.Message);
 
            }
 
  
 
        }

  

源码下载

posted on 2015-08-17 16:24  扶强  阅读(7906)  评论(0编辑  收藏  举报