首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jqxgrid导出数据

从jqxgrid导出数据
EN

Stack Overflow用户
提问于 2013-12-11 16:06:48
回答 2查看 1.8K关注 0票数 2

我想将jqxgrid中的所有数据导出到json中,并通过AJAX将其发送到另一个页面。我的问题是,当我单击导出按钮时,网格中的数据与导出前的数据不同。它将浮点数更改为整数。下面是我的代码:

Javascript:

代码语言:javascript
复制
$('#export_bt').on('click', function(){
  var row = $("#jqxgrid").jqxGrid('exportdata', 'json');
  $('#debug').html(row);
  console.log(row);
});

var tableDatas = [
  {"timestamp":"06:00:00","A":99.49,"B":337.77,"C":155.98},
  {"timestamp":"07:00:00","A":455.67,"B":474.1,"C":751.68},
  {"timestamp":"08:00:00","A":1071.02,"B":598.14,"C":890.47}
];

var tableDatafields = [
  {"name":"timestamp","type":"string"},
  {"name":"A","type":"number"},
  {"name":"B","type":"number"},
  {"name":"C","type":"number"}
];

var tableColumns = [
  {"text":"Times","datafield":"timestamp","editable":"false","align":"center","cellsalign":"center","width":150},
  {"text":"A","datafield":"A","editable":"false","align":"center"},
  {"text":"B","datafield":"B","editable":"false","align":"center"},
  {"text":"C","datafield":"C","editable":"false","align":"center"}
];

function setTableData(table_data,table_column,table_datafields)
{
  sourceTable.localdata = table_data;
  sourceTable.datafields = table_datafields;
  dataAdapterTable = new $.jqx.dataAdapter(sourceTable);
  $("#jqxgrid").jqxGrid({columns:table_column});
  $("#jqxgrid").jqxGrid('updatebounddata');
  $('#jqxgrid').jqxGrid('sortby', 'timestamp', 'asc');
  $("#jqxgrid").jqxGrid('autoresizecolumns');

  for(var i=0;i<table_column.length;i++){
    $('#jqxgrid').jqxGrid('setcolumnproperty',table_column[i].datafield,'cellsrenderer',cellsrenderer);
  }
}

var cellsrenderer = function (row, columnfield, value, defaulthtml, columnproperties) {
  if (value||value===0) {
    return value;
  }
  else {
    return '-';
  }
};

var sourceTable ={ localdata: '', datatype: 'array'};

var dataAdapterTable = new $.jqx.dataAdapter(sourceTable);
dataAdapterTable.dataBind();

$("#jqxgrid").jqxGrid({
  width: '500',
  autoheight:true,
  source: dataAdapterTable,
  sortable: true,
  columnsresize: false,
  selectionmode: 'none',
  columns: [{ text: '', datafield: 'timestamp', width:'100%' , editable: false, align:'center'}]
});

setTableData(tableDatas,tableColumns,tableDatafields);

Html:

代码语言:javascript
复制
<div id="jqxgrid"></div>
<button id="export_bt">Export</button>
<div id="debug"></div>

http://jsfiddle.net/jedipalm/jHE7k/1/

EN

回答 2

Stack Overflow用户

发布于 2015-11-12 13:31:34

您可以在源对象中添加数据类型,如下所示。

代码语言:javascript
复制
datafields: [{ "name": "timestamp", "type": "number" }]

此外,我还建议您在列定义中应用单元格格式。

代码语言:javascript
复制
{ text: 'timestamp', datafield: 'timestamp', cellsalign: 'right', cellsformat: 'd' }

可能的格式可以在here中看到。

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2019-02-25 15:14:34

您可以非常快速地导出数据,就像使用id jqxGrid一样。

代码语言:javascript
复制
var rows = $("#jqxGrid").jqxGrid("getrows");

它将是json数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20513704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档