2

我收到此警告

DataTables 警告(表 id = 'userList'):从第 0 行的数据源请求未知参数 '1'

我知道我收到了这个警告 ,因为表是空的。我的表中没有数据。

我想知道,我怎样才能忽略这个警告并显示空表?我的意思是只有标题。

我所拥有的如下。

$(document).ready(function(){
    $('#userList').dataTable( {
        "bPaginate": false,
        "bSort": true,
        "sPaginationType": "full_numbers",
        "bJQueryUI": true,
        "aoColumns": [
            { "sType": "natural" },
            null
        ],
        "oLanguage": {
            "sEmptyTable": '',
            "sInfoEmpty": ''
        },
        "sEmptyTable": "Loading data from server"

    });
});

&

<h:dataTable id="userList" value="#{FullScopeBens.gtAllDealsForMe()}" 
             var="userInfo" bgcolor="#{msg['tableColor']}" border="1" cellpadding="5" 
             cellspacing="1" width="100%" style="color: #{msg['fontColor']}; border: 1px solid white;"
             columnClasses="setNWCol01,setNWCol02"
             >
    <!--                                <f:facet name="header" class="centerText">
                                        <h:outputText value="News" style="font-size: 18px;text-align: center;color: #{msg['backColor']};"/>
                                    </f:facet>-->

    <h:column>
        <f:facet name="header">
            <br />
            <h:outputText value="Sr. No." />
            <br />
            <br />
        </f:facet>

        <h:outputText value="#{userInfo.serNo}" />
    </h:column>
</h:dataTable>

编辑 1

这就是我在 HTML 中得到的

<table id="userList" bgcolor="#F1F1F1" border="8" cellpadding="5" cellspacing="3" dir="LTR" width="100%" class="dataTable">
<thead>
<tr><th colspan="4" scope="colgroup"><span style="font-size: 18px;text-align: center;">Countries</span></th></tr>
<tr>
<th scope="col" class="ui-state-default">Serial No.</th>
</tr>
</thead>
<tbody role="alert" aria-live="polite" aria-relevant="all">
<tr><td class=" "></td></tr></tbody>
</table>

在java中我有下面。

public List<NewsBean> fetAllCompData() {
    try {
        db = new ConnectToDatabase();
        conn = db.makeconnection();

        PreparedStatement psmt = conn.prepareStatement("SELECT * FROM news ORDER BY id DESC");
        ResultSet rs = psmt.executeQuery();

        List<NewsBean> myList = new ArrayList<NewsBean>();
        long testNum = 1;
        while (rs.next()) {
            NewsBean newsBean = new NewsBean();
            newsBean.setId(rs.getString(1));
            newsBean.setSrNo(testNum + "");
            newsBean.setNewsEn(rs.getString(2));
            newsBean.setNewsAr(rs.getString(3));
            newsBean.setWhenAdd(rs.getString(4));
            testNum++;
            myList.add(newsBean);
        }

        if (conn != null) {
            conn.close();
        }

        return myList;
    } catch (Exception e) {
        System.out.println("Exception while fetching data " + e);
        return null;
    }
}

现在,当我在新闻表中没有数据时,我将一无所获。

当我打印 myList 时,里面什么都没有......

System.out.println("myList in news===" + myList);

myList in news===[]
4

2 回答 2

2

该死!为什么我一开始不这样做?

只需搜索function _fnLog( oSettings, iLevel, sMesg )

隐藏以下语句:

var sAlert = (oSettings===null) ?
"DataTables warning: "+sMesg :
"DataTables warning (table id = '"+oSettings.sTableId+"'): "+sMesg;

现在您将不会收到警报。

于 2013-11-05T11:48:35.600 回答
1

你的桌子有多空?

datatable仍然需要具有预期列数的标题行。

该错误消息似乎表明您的表格中至少有一行包含一个单元格。仔细检查生成的 html。

FullScopeBens.gtAllDealsForMe()另外,当你的 mysql 表中没有数据时,检查你的函数返回什么。

于 2013-09-25T22:09:13.040 回答