如何在表空时隐藏表 - 从行的数据源请求未知参数“1”

时间:2013-09-24 08:14:44

标签: jquery jsf datatables jquery-datatables

我收到了这个警告

DataTables warning(table 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

Thiis就是我用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===[]

2 个答案:

答案 0 :(得分:2)

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

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

隐藏以下声明......

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

现在你不会得到警觉......

合...

答案 1 :(得分:1)

你的桌子有多空?

datatable仍然需要包含预期列数的标题行。

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

另外,检查mysql表中没有数据时FullScopeBens.gtAllDealsForMe()函数返回的内容。