javascript - 从数据源将行添加到数据表

标签 javascript datatable

DataTables spring mvc 支持

我正在使用一个 Weblogic 数据源,我最终尝试从 Weblogic 数据源一次检索一条记录,然后一次在数据表中显示该记录一次。 DataTables.net有一个名为“添加行”的示例,但它不适合使用从数据源获取数据。网页上显示空数据表,我可以看到查询正确运行到数据源,但记录未显示在数据表中。

我在代码中包含以下内容:

<script src="<c:url value="/resources/js/jquery.js" />"></script>
<script src="<c:url value="/resources/js/jquery.min.js" />"></script>
<script src="<c:url value="/resources/js/jquery.dataTables.min.js" />"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/r/dt/dt-1.10.9/datatables.min.css"/>

来自 CONTROLLER 的片段:

@RequestMapping(value = "/locate", method = RequestMethod.GET)
    public @ResponseBody NewOrder getModelYearAndVehicleOrder(
           @RequestParam(value="modelYear") String modelYear\, 
           @RequestParam(value="vehicleOrder\") String vehicleOrder\){
        if (modelYear\.isEmpty() || vehicleOrder\.isEmpty())
        throw new IllegalArgumentException("Try Again!");

        NewOrder newOrder;

        try {
            newOrder= OrderRepo.findNewOrderByModelYearAndVehicleOrder(modelYear, vehicleOrder);
        }
        catch (Exception e){
            @SuppressWarnings("deprecation")
            Throwable _e = ExceptionUtils.getCause(e);
            throw new ExceptionHandler(
                DatabaseMessage.RETRIEVE_ERROR.toString(), _e.getMessage());
        }
        return newOrder;
        }

HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <body>
        <h1>Template Spring MVC App</h1>


    <form id= "locateVehicle">
        <p> Model Year?  <input id="modelYear" type="text" th:field="*{modelYear}" /> </p>
        <p> Order? <input id="orderNum" type="text" th:field="*{vehicleOrder}" /> </p>
        <button onclick="goToDetails()">Locate</button>
    </form>

<br></br>
    <div class="row">
        <div class="col-lg-12">         
            <table id="list" class="display">
                <thead>
                    <tr>
                        <th>Model Year</th>
                        <th>Order #</th>
                        <th>Model</th>
                    </tr>
                </thead>
                <tbody>
                    <c:forEach var="order" items="${order}" varStatus="loop">
                            <tr>
                                <td><c:out value="${order.modelYearNbr}" /></td>
                                <td><c:out value="${order.vehicleOrderNm}" /></td>
                                <td><c:out value="${order.model}" /></td>
                            </tr>
                </c:forEach>
                </tbody>
            </table>
        </div>
    </div>

JS:

<script>
    $(document).ready( function () {
        $('#list').DataTable();
    } );

    function goToODetails() {
        var modelYear = $('#modelYearId').val();
        var vehicleOrder =  $('#vehicleOrderId').val();
        var url = './DataLoader/locate?modelYear=' + modelYear + '&vehicleOrder' + vehicleOrder;
    $.get(url,function(result) {
        var vehicle = result;
        var list = $("#list");

        list.append('<tr><td>' + result.modelYearNbr    + '</td>' + 
                        '<td>' + result.vehicleOrderNm  + '</td>' + 
                        '<td>' + result.model           + '</td></tr>');
            });
        }
    </script>

在添加数据表文件之前,我能够看到记录发布到网页,但现在它没有发布到表。

最佳答案

终于成功了,方法如下:

$(document).ready(function() {
        var table = $('#orderList').DataTable()

$('#goToOrder').on('click', function() {
        var modelYear = $('#modelYearId').val();
        var url = './DataLoader/locate?modelYear=' + modelYear;

    $.get(url, function(result) {

        $(result).each(function( i, object ){  
             var vehicle = result[i];

        table.row.add([
            vehicle.modelYear, 
            vehicle.vehicleOrder, 
            vehicle.model
         ]).draw(false)
           .nodes()
           .to$();
            })          
        })
    })
});

关于javascript - 从数据源将行添加到数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659875/

相关文章:

javascript - 鼠标悬停时不显示 Dojox 工具提示

javascript - Uncaught ReferenceError : elementChecked is not defined

javascript - 等待内部的等待不会给出正确的输出

c# - 如何限制 foreach 循环 n 次运行?

jquery - 数据表警告 : table id=DataTables_Table_1 - Cannot reinitialise DataTable. 不起作用

javascript - 如何在 AngularJS 中映射多个路由?

javascript - 在对 Angular 线上显示 yAxis 标签

javascript - jQuery 数据表 "No Data Available in Table"

c# - 如何按数组中不包含的值过滤数据表?

ajax - 通过表行启动方法