花费数小时搜索我遇到的问题我找到了一些可能的解决方案,例如这些jQuery DataTables "No Data Available in Table",jQuery DataTables “No Data Available in Table” and tabled folds when sorting,但没有解决我的问题
问题是,当我的数据表中没有数据时,它显示表中没有可用的数据,这是正确的功能,但只要我通过Web API Post调用保存数据并通过Web API调用它调用并尝试在我的数据表中显示它,数据显示在我的数据表末尾没有数据可用行。
这是我的代码的样子,我正在使用angularjs
我的保存按钮为;
<button type="button"
class="btn btn-primary pull-right"
ng-click="Insert()"
ng-disabled="!frmClient.$valid">Save</button>
这是我的js文件中的插入函数
$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和客户端如下;
$scope.InitControls = function ()
{
$scope.Client = {
"rowuid": "0",
"ClientID": "",
"ClientName": "",
"CreatedBy": "",
"CreatedOn": "",
"UpdatedBy": "",
"UpdatedOn": ""
};
}
$scope.InitControls();
$scope.Clients = {};
最后我的数据表HTML看起来像这样;
<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我替换了client
中的<tr ng-repeat="Client in Clients">
,但问题仍然存在
这是回复的帖子,它返回客户列表;
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()函数为;
public static List<ClientModel> GetAll()
{
return service.GetAll().Select
(x => new ClientModel(x)).ToList();
}
在我的帖子调用中返回的我的客户端数据类看起来像这样;
public class ClientData
{
public bool IsValid { get; set; }
public object Data { get; set; }
}
这就是我的回访时将数据返回到我的控制器function successCallback(clientData)
中的$scope.Insert
在我的布局视图中,这就是我使用数据表的方式;
<script>
$(function () {
$('#UzairTable').DataTable({
'paging': true,
'lengthChange': false,
'searching': true,
'ordering': true,
'info': true,
'autoWidth': true
});
})
</script>
希望这有助于解决我的问题。
请注意,这不是重复问题,因为其他问题无法解决我的问题,此链接也无法解决我的问题Using Jquery Datatable with AngularJs
此致
答案 0 :(得分:0)
我还不能发表评论。你能解决我对这个问题的疑虑吗?。
您是否尝试将Client
中的<tr ng-repeat="Client in Clients">
替换为$scope
以外的其他名称? Angular可能会混淆2个具有相同名称的变量。
如果不是问题:
我通过Web API Post调用保存数据并通过Web API调用Get get并尝试在我的数据表中显示
您的POST回调会将客户端的客户端重置为POST请求返回的数据。这些数据是客户列表吗?
我们可以看到你的GET回调以及发出GET请求的位置吗?
花费数小时搜索我面临的问题我发现了一些可能的解决方案,例如这两个jQuery DataTables“表中没有可用的数据”,jQuery DataTables“表中没有数据”并且在排序时表格折叠但没有解决我的问题< / p>
我没看到你在哪里使用jQuery数据表。你能告诉我们那段代码吗?该消息似乎是该库中的那个消息。但我无法确定我是否看不到。