Javascript 如何使用jqxDataTable反转或转置表?
我在我的项目中使用动态表。对于某些单元格,我们得到的是百分比符号和文本。当%存在时,jqxDataTable插件的行为异常。PFB:一些示例场景 实际数据Javascript 如何使用jqxDataTable反转或转置表?,javascript,jquery,html,datatable,transpose,Javascript,Jquery,Html,Datatable,Transpose,我在我的项目中使用动态表。对于某些单元格,我们得到的是百分比符号和文本。当%存在时,jqxDataTable插件的行为异常。PFB:一些示例场景 实际数据 苹果,附加值(占MRP的百分比) 袋装书籍(每袋10-12本书籍的百分比) 猫喝20%的牛奶 显示数据 0 袋装书籍(每袋10-12本书籍的百分比) 二十 请让我知道,如果有人想出了任何解决这个问题的办法 更新 在分析问题时,我们认为问题可能是因为初始化jqxDataTable时提供了列映射 我们从web服务获取JSON格式的数据,并在加载
更新 在分析问题时,我们认为问题可能是因为初始化jqxDataTable时提供了列映射 我们从web服务获取JSON格式的数据,并在加载到jqxDataTable之前将JSON转换为HTML。这样做是为了使用户能够以反转样式查看表。i、 例如,用户可以切换表以将列视为行,反之亦然 请建议使用jqxDataTable的内置功能反转表视图的任何替代方法
function buildDataTableTranspose2(dimension, dataSource, dataFields, fromload) {
var gridfieldname = gbl_metadata.GridDataFields[dimension][0]["name"];
var gridfieldcaption = gbl_metadata.ColumnNames[dimension][0]["columnName"];
var dataAdapterMetadata = new $.jqx.dataAdapter(dataSource, {
loadComplete: function (records) {
var dataTableColumns = new Array();
var columnArray = new Array();
columnArray = "[{ text: \'" + gridfieldcaption + "\',dataField:\'" + gridfieldcaption + "\', width: 300, pinned: true },";
var header = "<thead><tr><th>" + dataFields[0]['text'] + "</th>";
var column = "";
for (var k = 0; k < records.length; k++) {
if (k == 0) column = "{" + "text:\'" + escapeEx(records[k][gridfieldname]) + "\'," + "dataField:\'" + escapeEx(records[k][gridfieldname] + k) + "\'," + "width:300, columntype:\'custom\', cellsrenderer: cellsrenderer, rendered: rendered, createeditor: createeditor, initeditor: initeditor }";
else column = ",{" + "text:\'" + escapeEx(records[k][gridfieldname]) + "\'," + "dataField:\'" + escapeEx(records[k][gridfieldname] + k) + "\'," + "width:300, columntype:\'custom\', cellsrenderer: cellsrenderer, rendered: rendered, createeditor: createeditor, initeditor: initeditor }";
columnArray = columnArray + column;
header = header + "<th>" + records[k][gridfieldname] + k + "</th>";
}
columnArray = columnArray + "]";
Array(columnArray);
columnArray = eval(columnArray);
header = header + "</tr></thead>";
var table = "<tbody>";
for (i = 1; i < dataFields.length; i++) {
var row = "<tr><td>" + dataFields[i]['text'] + "</td>";
for (j = 0; j < records.length; j++) {
var dataValue = records[j][dataFields[i]['dataField']];
row = row + "<td>" + escapeEx(dataValue == null ? "" : dataValue) + "</td>";
}
table = table + row + "</tr>";
}
table = table + "</tbody>";
table = "<table id='" + dimension + "_metadata_transposetable'>" + header + table + "</table>";
$('#' + dimension + '_metadataTable').html(table);
$('#' + dimension + '_metadataTable table').jqxDataTable({
sortable: true,
width: '100%',
height: getGridHeight(),
filterable: false,
columnsReorder: true,
columnsResize: true,
columns: columnArray
});
}
});
// perform data binding.
dataAdapterMetadata.dataBind();
}
函数buildDataTableTranspose2(维度、数据源、数据字段、fromload){
var gridfieldname=gbl_metadata.GridDataFields[dimension][0][“name”];
var gridfieldcaption=gbl_metadata.ColumnNames[dimension][0][“columnName”];
var dataAdapterMetadata=new$.jqx.dataAdapter(数据源{
loadComplete:功能(记录){
var dataTableColumns=新数组();
var columnArray=新数组();
columnArray=“[{text:\'”+gridfieldcaption+“\”,数据字段:\'“+gridfieldcaption+”\”,宽度:300,固定:true}”;
var header=”“+数据字段[0]['text']+';
var列=”;
for(var k=0;k
我通过在绑定到jqxDataTable之前转置JSON来解决这个问题