$('#eGrid').datagrid('toExcel', { filename: strName + new Date().Format('yyyyMMddhhmmss') + '.xls', worksheet: strName, caption: '<span style="font-size:24px;">' + strName + '</span>', rows: row, formatter: { date: function (value, rowData) { if (value == '' || value == null || typeof value == 'undefined') return "0"; return value; } } }); layer.closeAll('loading'); });
时间: 2024-02-10 22:12:17 浏览: 31
在您提供的代码中,`formatter`选项被用来指定一个自定义的格式化函数来格式化日期列。在这个函数中,如果日期值为空或未定义,则返回"0"字符串。这意味着在导出Excel时,所有空的日期值都将被替换为"0"字符串。
如果您希望对日期列进行其他的格式化操作,比如将日期格式化为指定的字符串格式,可以编写一个自定义的日期格式化函数,像这样:
```javascript
date: function (value, rowData) {
if (value == '' || value == null || typeof value == 'undefined')
return "";
var date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
}
```
在上面的代码中,我们将日期值转换为Date对象,并将其格式化为'yyyy-mm-dd'的格式。您可以根据需要修改格式化函数来满足您的需求。
相关问题
$(this).datagrid
根据我理解,$(this).datagrid 是 jQuery EasyUI 中使用的一种方法,用于操作数据表格。其中,$(this) 表示当前使用该方法的元素,datagrid 则是方法名。该方法可以实现数据的增删改查等操作,具体使用方法可以参考 EasyUI 的官方文档。不过,如果您有具体的问题或需求,请告诉我,我会尽力帮助您解决。
$(this).datagrid("beginEdit", index); var temp; var url = "/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList?commodityId="+rows[index].commodityId $.ajax({ url:url, async:false, //同步请求 dataType:"json", success:function(data){ temp = data; } }); var configTarget= $(this).datagrid("getEditor",{index:index,field:"commodityConfig"}).target configTarget.combobox('loadData',temp); $(this).datagrid("endEdit", index);
根据你提供的代码,我可以看到下拉框无法加载数据的原因。在beginEdit和endEdit之间,你使用了异步的ajax请求去获取数据,但是你没有等到ajax请求完成就立即使用temp去加载下拉框的数据源。因此,temp可能是空的或者未能正确地获取到数据。这就导致了关闭editor后,下拉框中无法显示任何值。
为了解决这个问题,你可以将异步请求改为同步请求,或者在ajax请求完成后再去加载下拉框的数据源。以下是一个可能的解决方案:
```
$(this).datagrid("beginEdit", index);
var url = "/manage/platform/commodity/baseCommodityModelCp/getConfigInfoList?commodityId="+rows[index].commodityId;
$.ajax({
url: url,
async: false, //同步请求
dataType: "json",
success: function(data){
var configTarget= $(this).datagrid("getEditor",{index:index,field:"commodityConfig"}).target;
configTarget.combobox('loadData', data);
}
});
$(this).datagrid("endEdit", index);
```
在这个解决方案中,我将ajax请求放在了success回调函数中,以确保在获取数据后再去加载下拉框的数据源。同时,我也删除了temp变量,因为它不再需要了。