簡體   English   中英

無法使用對象數組顯示表,因此我可以使用DT_RowId標記行

[英]Unable to display table using an array of objects so that I am able to label rows using DT_RowId

我試圖通過傳遞對象而不是數組來顯示使用jQuery進行控制的表。 我想這樣做,以便能夠使用DT_RowId標簽標記表的行。 我需要這樣做,以便可以將刪除功能添加到用戶可用的表中。 以下是我要執行的操作的一些示例:

http://datatables.net/release-datatables/examples/server_side/object_data.html

http://datatables.net/release-datatables/examples/server_side/ids.html

我嘗試使用以下代碼以這些示例中所示的兩種方式格式化數據:

searchWsConfigurations.jsp

<link rel="stylesheet" type="text/css" href="<c:url value='/styles/data_table.css'/>" />
<link rel="stylesheet" type="text/css" href="<c:url value='/styles/data_table_proper.css'/>" />
<link rel="stylesheet" type="text/css" href="<c:url value='/styles/demo_table_jui.css'/>" />
<script src="<c:url value='/javascript/jquery.dataTables.min.js' />" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function() {

//Datatable transformations
$('#wsConfigurationTable').dataTable( {
    "bJQueryUI": true,
    "bPaginate": true,
    "bDeferRender": true,
    "bProcessing" : true,
    "bServerSide" : true,
    "sAjaxSource" : "<c:url value='/maintenance/searchWsConfigurationsServerSideProcessingReport.htm'/>",
    "iDeferLoading" : 10,
    "bLengthChange": true,
    "iDisplayLength": 10,
    "bFilter": false,
    "bSort": true,
    "aoColumns": [
                   { "mData": "testerId" },
                   { "mData": "date" },
                   { "mData": "hostName" },
                   { "mData": "ipAddress" },
                   { "mData": "alias" },
                   { "mData": "wsModel" },
                   { "mData": "operatingSystem" },
                   { "mData": "stRevisions" }],

    "bInfo": true,
    "bAutoWidth": true,
    "sPaginationType": "full_numbers"
});

}); 

</script>

<br>
<h2><tiles:getAsString name="heading" ignore="true"/></h2>
<br>

<a href="addWsConfiguration.htm"><img src="/vpdConsole/images/icons/add-icon-button_32x32.png" class="undecorated" style="float:right"/></a>

<table id="wsConfigurationTable" class="datatable">
    <thead>
        <tr>
        <th>Tester ID</th>
        <th>Entry Date</th>
        <th>Hostname</th>
        <th>IP</th>
        <th>Alias</th>
        <th>Model</th>
        <th>OS</th>
        <th>ST Rev</th>
    </tr>
</thead>
<tbody>
</tbody>
</table>

即使服務器返回了我期望的值,我仍然會遇到有關列數的錯誤。 這是我得到的回應:

{"sEcho":1,"iTotalRecords":13105,"iTotalDisplayRecords":13105,"aaData":[{"0":"Tester 1","1":"2013-05-14","2":"Host 1","3":"192.168.1.43","4":"Alias 1","5":"HP Proliant Server","6":"Red Hat Linux 5","7":"2.1.9","DT_RowId":"row_1","DT_RowClass":"visibleClass"},{"0":"Tester 1","1":"2013-05-14","2":"Host 1","3":"192.168.1.96","4":"Alias 1","5":"HP Proliant Server","6":"Red Hat Linux 5","7":"2.1.9","DT_RowId":"row_2","DT_RowClass":"visibleClass"},{"0":"Tester 1","1":"2013-05-15","2":"Host 1","3":"192.168.1.14","4":"Alias 1","5":"HP Proliant Server","6":"Red Hat Linux 5","7":"2.1.9","DT_RowId":"row_3","DT_RowClass":"visibleClass"},{"0":"Tester 10","1":"2013-05-14","2":"Host 10","3":"192.168.1.18","4":"Alias 10","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_4","DT_RowClass":"visibleClass"},{"0":"Tester 10","1":"2013-05-14","2":"Host 10","3":"192.168.1.34","4":"Alias 10","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_5","DT_RowClass":"visibleClass"},{"0":"Tester 10","1":"2013-05-15","2":"Host 10","3":"192.168.1.9","4":"Alias 10","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_6","DT_RowClass":"visibleClass"},{"0":"Tester 100","1":"2013-05-14","2":"Host 100","3":"192.168.1.63","4":"Alias 100","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_7","DT_RowClass":"visibleClass"},{"0":"Tester 100","1":"2013-05-14","2":"Host 100","3":"192.168.1.9","4":"Alias 100","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_8","DT_RowClass":"visibleClass"},{"0":"Tester 100","1":"2013-05-15","2":"Host 100","3":"192.168.1.63","4":"Alias 100","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_9","DT_RowClass":"visibleClass"},{"0":"Tester 1000","1":"2013-05-14","2":"Host 1000","3":"192.168.1.15","4":"Alias 1000","5":"Sun Server X200","6":"Windows 7 Ultimate","7":"1.5.7","DT_RowId":"row_10","DT_RowClass":"visibleClass"}]}

我不確定要完成這項工作需要做什么。 使用常規數組時,我可以顯示該表,但是當我將其切換到對象數組時,該錯誤聲明數據的大小不確定,並且與已知的列數不匹配。 任何幫助將不勝感激。

請參閱以下jsfiddle: http : //jsfiddle.net/GqFcW/

雙擊任何行,您將收到帶有行ID的警報。 我修改了您的代碼以使用對象數組,並且這些對象使用您提供的mData名稱代替了“ 0”,“ 1”等。這是示例的第一行。

{"testerId":"Tester 1","date":"2013-05-14","hostName":"Host 1","ipAddress":"192.168.1.43","alias":"Alias 1","wsModel":"HP Proliant Server","operatingSystem":"Red Hat Linux 5","stRevisions":"2.1.9","DT_RowId":"row_1","DT_RowClass":"visibleClass"}

或者,您可以將對象數組保留為原來的樣子,但是將mData修改為

"aoColumns": [
                   { "mData": "0" },
                   { "mData": "1" },

等等。

因此,取消注釋"bServerSide" : true行,然后重新添加ajax調用。 這應該工作。 如果不是,則可能需要驗證您的JSON是否按預期返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM