首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使数据存在并出现在表中,jQuery Data Tables也会显示"No Data Available in Table“

即使数据存在并出现在表中,jQuery Data Tables也会显示"No Data Available in Table“
EN

Stack Overflow用户
提问于 2018-06-03 20:57:53
回答 1查看 292关注 0票数 0

我花了几个小时寻找我面临的问题我找到了一些可能的解决方案,比如这两个jQuery DataTables "No Data Available in Table"jQuery DataTables “No Data Available in Table” and tabled folds when sorting,但都没有解决我的问题

问题是,当我的数据表中没有数据时,它在表中没有显示可用数据,这是正确的功能,但只要我通过web API Post调用保存数据,并通过web API Get调用来调用它,并尝试在我的数据表中显示它,数据就会显示,并且在我的数据表的末尾没有数据可用行。

这是我的代码的样子,我使用的是angularjs

我的保存按钮是as;

代码语言:javascript
运行
复制
<button type="button"
    class="btn btn-primary pull-right"
    ng-click="Insert()"
    ng-disabled="!frmClient.$valid">Save</button>

下面是我的js文件中的insert函数

代码语言:javascript
运行
复制
$scope.Insert = function ()
{
    //make a call to server to save date
    $http({
        method: "Post",
        data: $scope.Client,
        url: "/api/ClientWebAPI"
    }).then(function successCallback(clientData) {
        if (clientData.data.IsValid)
        {
            //Load the collection of clients
            $scope.Clients = clientData.data.Data;
            $scope.InitControls();
        }
        else
        {
            $scope.Errors = clientData.data.Data.Errors;
        }
    });
}

我的InitControls和客户端如下;

代码语言:javascript
运行
复制
$scope.InitControls = function ()
{
    $scope.Client = {
        "rowuid": "0",
        "ClientID": "",
        "ClientName": "",
        "CreatedBy": "",
        "CreatedOn": "",
        "UpdatedBy": "",
        "UpdatedOn": ""
    };
}

$scope.InitControls();

$scope.Clients = {};

最后,我的数据表的HTML如下所示;

代码语言:javascript
运行
复制
<table id="UzairTable"
                   class="table table-bordered table-hover">

    <thead>

        <tr>
            <th>Client ID</th>
            <th>Client Name</th>
            <th>Actions</th>
        </tr>

    </thead>

    <tbody>

        <tr ng-repeat="Client in Clients">
            <td>{{Client.ClientID}}</td>
            <td>{{Client.ClientName}}</td>
            <td> Edit/View/Delete</td>
        </tr>

    </tbody>
</table>

有没有人可以帮我和指导我遗漏了什么,这将是一个很大的帮助,我已经尝试在我的插入函数中的InitControls之前初始化我的数据表,但没有任何运气。

-编辑

@Enrique Fernandez我在我的<tr ng-repeat="Client in Clients">中替换了client,但问题仍然存在

下面是返回客户端列表的post回调;

代码语言:javascript
运行
复制
public object Post(ClientModel model)
    {
        ClientData clientData = new ClientData();
        if (ModelState.IsValid)
        {
            if (ClientHelper.Save(model).ToUpper() == "SAVED SUCCESSFULLY")
            {
                clientData.IsValid = true;
                clientData.Data = ClientHelper.GetAll();
            }
            else
            {
                Validation validation = new Validation();
                foreach (var modelState in ModelState)
                {
                    foreach (var error in modelState.Value.Errors)
                    {
                        validation.Errors.Add(error.ErrorMessage);
                    }
                }

                clientData.IsValid = false;
                clientData.Data = validation;
            }
        }

        return clientData;
    }

ClientHelper类中的GetAll()函数是as;

代码语言:javascript
运行
复制
public static List<ClientModel> GetAll()
    {
        return service.GetAll().Select
            (x => new ClientModel(x)).ToList();
    }

在post调用中返回的客户端数据类如下所示;

代码语言:javascript
运行
复制
 public class ClientData
{
    public bool IsValid { get; set; }
    public object Data { get; set; }
}

这就是我的post回调向控制器$scope.Insert中的function successCallback(clientData)返回数据的方式

在我的布局视图中,这就是我使用数据表的方式;

代码语言:javascript
运行
复制
<script>
    $(function () {
        $('#UzairTable').DataTable({
            'paging': true,
            'lengthChange': false,
            'searching': true,
            'ordering': true,
            'info': true,
            'autoWidth': true                
        });
    })
</script>

希望这有助于解决我的问题。

请注意,这不是重复问题,因为其他问题不能解决我的问题,此链接也不能解决我的问题Using Jquery Datatable with AngularJs

问候

EN

回答 1

Stack Overflow用户

发布于 2018-06-03 21:56:52

我还不能发表评论。你能给我解答一下这个问题吗?

您是否尝试过将<tr ng-repeat="Client in Clients">中的Client替换为$scope中不存在的其他名称?Angular可能会混淆两个同名的变量。

如果这不是问题所在:

只要我通过web API Post调用保存数据,并通过web API Get调用调用它,并尝试在我的数据表中显示它,就执行

POST回调将客户端重置为POST请求返回的数据。此数据是客户端列表吗?

我们可以看看你的GET回调以及GET请求是在哪里发出的吗?

我花了几个小时寻找我所面临的问题,我找到了一些可能的解决方案,比如这2个jQuery DataTables“表中没有数据”,jQuery DataTables“表中没有数据”,以及排序时的折叠表,但都没有解决我的问题

我不知道您在哪里使用jQuery数据表。你能给我们看一下那段代码吗?这条消息似乎和那个库中的消息相似。但如果我看不到这一点,我就不能确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50666666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档