【问题标题】:Datatables not displaying first column数据表不显示第一列
【发布时间】:2017-07-25 11:44:01
【问题描述】:

我有一个 JSON 对象,我尝试使用 jquery 数据表在表中显示,但第一列未显示。我知道数据在 JSON 对象中,但没有显示数据。 谁能看看我的代码有什么问题? 谢谢!

<script src="jquery-3.2.1.min.js"></script>
<script src="xlsx.full.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.15/datatables.min.css" />
<script type="text/javascript" src="https://cdn.datatables.net/r/bs-3.3.5/jqc-1.11.3,dt-1.10.8/datatables.min.js"></script>  
<meta charset="utf-8">
<a href="index.html">
<img border="0"  src="home.png" width="50" height="50">

</a>
<style>
.pull-right{float:right!important;}
.pull-left{float:left!important;}
</style>

<script>
    /* set up XMLHttpRequest */
    function asyncReq(callback){
    var url = "LICENCIAMENTOS_PROJECTOS.xlsx";
    var oReq = new XMLHttpRequest();
    oReq.open("GET", url, true);
    oReq.responseType = "arraybuffer";

    oReq.onload = function(e) {
        var arraybuffer = oReq.response;

        /* convert data to binary string */
        var data = new Uint8Array(arraybuffer);
        var arr = new Array();
        for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
        var bstr = arr.join("");

        /* Call XLSX */
        var workbook = XLSX.read(bstr, {
           type: "binary"
        });

        /* DO SOMETHING WITH workbook HERE */

        var sheet_name = workbook.SheetNames[2];

        /* Get worksheet */


        var worksheet = workbook.Sheets[sheet_name];
        var oficios = XLSX.utils.sheet_to_json(worksheet,{range:2});

        callback(oficios);
        }
        oReq.send();
    }

    asyncReq(function(result){
    console.log(result);
    //DataTable     
        $('#tabela-oficios').DataTable( {
                "dom": '<"pull-left"f><"pull-right"l>tip',
                "aaData": result,
                "aoColumns": [
                    { "mData": "Conc.",
                        sDefaultContent: ''},
                    { "mData": "Nº PT",
                        sDefaultContent: ''},
                    { "mData": "Procº ",
                        sDefaultContent: ''},
                    { "mData": "Designação",
                    sDefaultContent: ''},
                    { "mData": "Clausulas (S/N)",
                        sDefaultContent: ''},
                    { "mData": "Nº Oficio",
                        sDefaultContent: ''},   
                    { "mData": "SGD",
                        sDefaultContent: ''},   
                    { "mData": "Data Oficio",
                        sDefaultContent: ''},   
                    { "mData": "Data Resposta",
                        sDefaultContent: ''},   
                    { "mData": "Informação para resolução clausulas",
                        sDefaultContent: ''},   
                    { "mData": "Data inf da AO resolução clausulas",
                        sDefaultContent: ''}]                       
            });             


        }); 

</script>

            <h1 align="center">LICENCIAMENTOS</h3> 
            <h3 align="center">Registo de Oficios que Carecem de Resposta</h3> 
            <table id="tabela-oficios" class="display compact" style="text-align:center; margin: 0 auto;" > 
                 <thead>  
                      <tr>  
                           <th>Conc.</th>  
                           <th>Nº PT</th>  
                           <th>Número do Processo</th>
                           <th>Designação</th>
                           <th>Clausulas (S/N)</th> 
                           <th>Nº Oficio</th>  
                           <th>SGD</th>  
                           <th>Data Oficio</th>
                           <th>Data Resposta</th>
                           <th>Informação para resolução clausulas</th>  
                           <th>Data inf da AO resolução clausulas</th>  
                        </tr>  
                 </thead>  
            </table>  

这是一张向您展示正在发生的事情的图片:

【问题讨论】:

  • 一切看起来都很好。只是为了调试 1. 尝试将第一列移动到第二位 { "mData": "Conc.", sDefaultContent: ''}, 2. 更改 Conc.到 Número do Processo 看看它是否有效 { "mData": "Conc.", sDefaultContent: ''},
  • 可能是 Conc. 中的点导致了问题 - 尝试在第一列中使用 "mData": 0,
  • @markpsmith 我也有这种感觉,但是还有其他领域也有特殊的性格并且工作正常
  • 我没有看到任何其他以点、句号、句号、w/e 命名的列。你试过"mData": 0,吗?试试看 - 排除它。
  • 感谢大家的帮助!我通过更改名称解决了这个问题。我认为@markpsmith 是对的,问题出在点上,我认为它很奇怪。但无论如何它现在工作!谢谢:)

标签: jquery json database datatables


【解决方案1】:

请使用 DOM Explorer 检查您的 css,因为 css 可能会覆盖该行为。 在我的情况下,遵循 css 导致了问题。

a {
color:white;
text-decoration: none;
background-color: transparent;
}

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2015-08-21
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多