【问题标题】:adding current searched results as a new row of a table将当前搜索结果添加为表格的新行
【发布时间】:2018-11-23 20:28:21
【问题描述】:

我有一个搜索文本框,它将从数据库中搜索客户记录。客户记录有“姓名”、“年龄”、“地址”和更多字段。我正在使用 single 客户名称进行搜索,并在表格中显示该客户详细信息。

第一次搜索后,如果我搜索其他客户名称,则当前客户详细信息将替换该表中的先前搜索结果。

我想在同一个表中显示所有搜索结果(即以前的、当前的)。

我正在使用 angularjs。这是我的搜索角度控制器代码

$scope.search = function () {
    var price = '{custName: "' + $scope.Prefix + '" }';
    var post = $http({
        method: "POST",
        url: "/api/Price/GetDetails",
        dataType: 'json',
        data: price,
        headers: { "Content-Type": "application/json" }
    });
    post.success(function (data, status) {
        $scope.Customers = data;
        $scope.IsVisible = true;
    });
    post.error(function (data, status) {
        $window.alert(data.Message);
    });
};

html代码

<div class="controls">
                                    <input type="text" ng-model="Prefix" placeholder="Search Material..." class="form-control" /><br />
                                    <button type="button" class="btn btn-outline-dark" ng-click="search()">Search</button>
                                </div>

表格 html 代码

<tbody ng-repeat="m in Customers">
                                                    <tr>
                                                        <td align="center">
                                                            <a class="btn btn-default"><em class="fa fa-pencil"></em></a>
                                                            <a class="btn btn-danger"><em class="fa fa-trash"></em></a>
                                                        </td>
                                                        <td class="hidden-xs">1</td>
                                                        <td>{{m.PM}}</td>
                                                        <td>{{m.Description}}</td>
                                                        <td>{{m.Hier}}</td>

如何显示该表中的所有搜索结果

【问题讨论】:

    标签: html angularjs asp.net-mvc


    【解决方案1】:

    您必须将结果存储在变量中并不断将新结果附加到该变量中。为此,我们可以使用 Javascript 的 concat() 函数。

    var dataAll = [];
    $scope.search = function () {
        var price = '{custName: "' + $scope.Prefix + '" }';
        var post = $http({
            method: "POST",
            url: "/api/Price/GetDetails",
            dataType: 'json',
            data: price,
            headers: { "Content-Type": "application/json" }
        });
        post.success(function (data, status) {
            dataAll = dataAll.concat(data);
            $scope.Customers = dataAll;
            $scope.IsVisible = true;
        });
        post.error(function (data, status) {
            $window.alert(data.Message);
        });
    };
    

    那么您还需要一个清除按钮来将 dataAll 重置为 []。

    【讨论】:

    • 它没有填充任何结果。我通过 api 调用 json 结果。我认为它是对象而不是任何字符串或文本。所以,它没有显示任何结果。
    • 我已经更新了答案。我们正在连接但没有将结果分配回 dataAll。请立即尝试。
    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 2014-08-03
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2014-06-15
    相关资源
    最近更新 更多