Javascript 如何使用jqxDataTable反转或转置表?

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插件的行为异常。PFB:一些示例场景

实际数据
  • 苹果,附加值(占MRP的百分比)
  • 袋装书籍(每袋10-12本书籍的百分比)
  • 猫喝20%的牛奶
  • 显示数据
  • 0
  • 袋装书籍(每袋10-12本书籍的百分比)
  • 二十
  • 请让我知道,如果有人想出了任何解决这个问题的办法


    更新 在分析问题时,我们认为问题可能是因为初始化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来解决这个问题