在ui-grid 导出pdf 时可能会出现中文字符无法显示问题,解决方法看这篇博客:
http://my.oschina.net/gmd/blog/714911
<htmlng-app="myApp"> <head> <Metacharset="utf-8"> <title>ui-GridExample01</title> <linkrel="stylesheet"type="text/css"href="../css/ui-grid/ui-grid.css"/> <scripttype="text/javascript"src="../js/lib/angular/angular.js"></script> "../js/lib/jquery/jquery-1.11.2.js">"../js/lib/ui-grid/ui-grid.js"></script> <!-- ui-grid export 导出--> <script src="../js/lib/pdfmake/pdfmake.min.js">"../js/lib/pdfmake/vfs_fonts.js">"../js/lib/ui-grid/csv.js"></head> <bodyng-controller="MyCtrl"> <divui-grid="gridOptions"style="width:100%;height:500px;text-align:center;"ui-grid-editui-grid-pagination ui-grid-selectionui-grid-exporterui-grid-resize-columnsui-grid-auto-resize> </div> <divstyle="width:100%;height:100px"> <ol> <li>名称:{{testRow.name}}</li> <li>年龄:{{testRow.age}}<li>生日:{{testRow.birthday}}</ol> </div> </body> </html>
ui-grid-edit:grid 编辑指令;
ui-gird-pagination :grid 分页指令;
ui-grid-selection :grid 选择行所需指令;
ui-grid-exporter :grid 导出功能所需指令;
ui-grid-resize-columns:grid 列宽可以拉伸所需指令;
ui-grid-auto-resize :解决grid布局 自动适应div 高度和宽度问题(非常有用);
js 代码:
varapp=angular.module('myApp',['ui.grid','ui.grid.selection',0);">'ui.grid.edit',0);">'ui.grid.exporter',0);">'ui.grid.pagination',0);">'ui.grid.resizeColumns',0);">'ui.grid.autoResize']);
app.controller('MyCtrl',function($scope,i18nService){
//国际化;
i18nService.setCurrentLang("zh-cn");
$scope.gridOptions={
data:'myData',columnDefs:[{field:'name',102);">displayName:'名字',102);">width:'10%',102);"> enableColumnMenu: false,// 是否显示列头部菜单按钮
enableHiding: suppressRemoveSort: true,102);">enableCellEdit:false//是否可编辑
},{"age"},0);">"birthday"},0);">"salary"}
],102);"> enableSorting://是否排序
useExternalSorting://是否使用自定义排序规则
enableGridMenu://是否显示grid菜单
showGridFooter://是否显示gridfooter
enableHorizontalScrollbar:1,0);">//grid水平滚动条是否显示,0-不显示1-显示
enableVerticalScrollbar:0,0);">//grid垂直滚动条是否显示,0-不显示1-显示
//--------分页属性----------------
enablePagination://是否分页,默认为true
enablePaginationControls://使用默认的底部分页
paginationPageSizes:[10,15,102);">20],0);">//每页显示个数可选项
paginationCurrentPage://当前页码
paginationPageSize://每页显示个数
//paginationTemplate:"<div></div>",//自定义底部分页代码
totalItems://总数量
useExternalPagination://是否使用分页按钮
//-----------选中----------------------
enableFooterTotalSelected://是否显示选中的总数,默认为true,如果显示,showGridFooter必须为true
enableFullRowSelection://是否点击行任意位置后选中,默认为false,当为true时,checkBox可以显示但是不可选中
enableRowHeaderSelection://是否显示选中checkBox框,默认为true
enableRowSelection://行选择是否可用,默认为true;
enableSelectAll://选择所有checkBox是否可用,默认为true;
enableSelectionBatchEvent://默认true
isRowSelectable:function(row){//GridRow
if(row.entity.age>45){
row.grid.api.selection.selectRow(row.entity);//选中行
}
},102);">modifierKeysToMultiSelect://默认false,为true时只能按ctrl或shift键进行多选,multiSelect必须为true;
multiSelect://是否可以选择多个,默认为true;
noUnselect:selectionRowHeaderWidth:30,0);">//默认30,设置选择列的宽度;
//--------------导出----------------------------------
exporterAllDataFn:function(){
return getPage(exporterCsvColumnSeparator:',',102);">exporterCsvFilename:'download.csv',exporterFieldCallback:function(grid,row,col,value){
if(value==50){
value="可以退休";
}
returnvalue;
},exporterHeaderFilter:function(displayName){
return'col:'+name;
},exporterHeaderFilterUseName:"Export",exporterMenuPdf:bold:fontSize:10};
returndocDefinition;
},exporterPdfFooter:{
text:'Myfooter',102);">style:'footerStyle'
},exporterPdfDefaultStyle:{
fontSize:11,0);">font:'simblack' //font 设置自定义字体
},102);">exporterPdfFilename:'download.pdf',0);">/*exporterPdfFooter:{ columns:[ 'Leftpart',{text:'Rightpart',alignment:'right'} ] },或*/
exporterPdfFooter:function(currentPage,pageCount){
returncurrentPage.toString()+'of'+pageCount;
},exporterPdfHeader:function(currentPage,exporterPdfMaxGridWidth:720,exporterPdfOrientation:'landscape',0);">//'landscape'或'portrait' pdf横向或纵向
exporterPdfPageSize:'A4',0);">//'A4'or'LETTER'
exporterPdfTableHeaderStyle:{
bold:12,102);">color:'black'
},exporterPdfTableLayout:null,102);">exporterPdfTableStyle:{
margin:[5,102);">15]
},exporterSuppressColumns:['buttons'],102);">exporterSuppressMenu://---------------api---------------------
onRegisterApi:function(gridApi){
$scope.gridApi=gridApi;
//分页按钮事件
gridApi.pagination.on.paginationChanged($scope,function(newPage,pageSize){
if(getPage){
getPage(newPage,pageSize);
}
});
//行选中事件
$scope.gridApi.selection.on.rowSelectionChanged($scope,function(row,event){
if(row){
$scope.testRow=row.entity;
}
});
}
};
vargetPage=function(curPage,pageSize){
varfirstRow=(curPage-1)*pageSize;
$scope.gridOptions.totalItems=mydefalutData.length;
$scope.gridOptions.data=mydefalutData.slice(firstRow,firstRow+pageSize);
//或者像下面这种写法
//$scope.myData=mydefalutData.slice(firstRow,firstRow+pageSize);
};
varmydefalutData=[{name:"Moroni",0);">age:50,0);">birthday:"Oct28,1970",0);">salary:"60,000"},0);">"Tiancum",102);">43,0);">"Feb12,1985",0);">"70,0);">"Jacob",102);">27,0);">"Aug23,1983",0);">"50,0);">"Nephi",102);">29,0);">"May31,2010",0);">"40,0);">"Enos",102);">34,0);">"Aug3,2008",0);">"30,000"}];
getPage( 效果图:
原文链接:https://www.f2er.com/angularjs/148115.html