bootstrap table 导出数据为excel或其他,为什么点击了没反应

 我来答
点点通软件公司
2016-12-04 · TA获得超过922个赞
知道小有建树答主
回答量:650
采纳率:89%
帮助的人:139万
展开全部
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

function
initTable() {

var
queryUrl = '@Url.Content("~/Welcome/QueryList")'
+ '?rnd='
+ +Math.random();

$table = $('#table-javascript').bootstrapTable({

//method: 'get',<br><br>

          method: 'post',
          contentType: "application/x-www-form-urlencoded",//必须的,

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);

}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式