我想将kendo网格数据导出到excel中。我使用kendo下拉列表作为某些列的模板。
当我导出它时导出但它没有显示这些列的文本值,而是显示那些字段的值。
答案 0 :(得分:0)
这可能不是最好的"解决方案,但它对我有用。基本上我创建了一个循环并使用下拉列表处理行的函数,使用switch语句根据值设置文本(不幸的是,数据只有值,而不是对象)。
这是我网格的标记:
<div id="grid" data-role="grid"
data-sortable=" {mode: 'single' , allowunsort:true }"
data-toolbar="[{template: this.model.getToolbar}]"
data-excel="{ fileName: 'export.xlsx', allPages:'true' }"
data-excel-export="model.curateExcelData"
data-columns="@string.Format(@"[
{{ title:'{0}', field: 'Column1', width:80 }},
{{ title:'{1}', field: 'Column2', width:80 }},
{{ title:'{12}', field: 'DropDownColumn',template: kendo.template($('#dropdown-template').html()),'width':80, sortable: false }},
]", CommonResource.Column1, CommonResource.Column2, CommonResource.DropDownColumn)"
data-bind="source: items"
data-editable="inline">
</div>
模板:
<script id="dropdown-template" type="text/x-kendo-template">
<input data-role="dropdownlist"
data-auto-bind="false"
data-value-primitive="true"
data-text-field="Text"
data-value-field="Value"
data-bind="value: dropDownValue, source: dropDownValues"
style="width:65px" />
</script>
这是更新导出值的函数(在我的情况下,我有一个下拉菜单是&#34; Days&#34;和&#34; Weeks&#34;,这是第12列):
curateExcelData: function (data) {
var sheet = data.workbook.sheets[0];
$.each(sheet.rows, function (index, row) {
if (row.type == "data") {
switch (row.cells[12].value) {
case "D":
row.cells[12].value = "Days";
break;
case "W":
row.cells[12].value = "Weeks";
default:
break;
}
}
});
},