Я пытаюсь использовать datatable и мне было интересно, что я делаю неправильно, он просто зависает при загрузке и показывает ожидание запуска.Это на моем контроллере активности, и функция LoadGridData вызывается из сценариев ниже в моем index.cshtml.
public ActionResult LoadGridData()
{
// Getting all Customer data
var data = GetAllActivityHeader();
return Json(new { data = data });
}
Вот моя функция GetallActivityHeader
public async Task<ActionResult<List<ActivityHeader>>> GetAllActivityHeader()
{
return await _activityRepo.GetAllActivityHeader();
}
Это мой метод репозитариякоторый вызывается выше.
public async Task<List<ActivityHeader>> GetAllActivityHeader()
{
using (IDbConnection conn = Connection)
{
if(conn.State == ConnectionState.Closed)
conn.Open();
var result = await conn.QueryAsync<ActivityHeader>("GetActivityHeader");
return result.ToList();
}
}
В My Layout у меня есть следующие сценарии
@section Scripts{
<script src="//cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js">
</script>
<script>
$(document).ready(function () {
$('#myTable').DataTable({
"ajax": {
"url": "/Activity/LoadGridData",
"type": "GET",
"datatype": "json"
},
"columns": [
{ "data": "Name", "autoWidth": true },
{ "data": "Description", "autoWidth": true },
{ "data": "Phone", "autoWidth": true },
{ "data": "EmployeeName", "autoWidth": true },
{ "data": "SOP", "autoWidth": true },
{ "data": "Status", "autoWidth": true }
]
});
});
</script>
Html
<div class="container">
<br />
<div style="width:90%; margin:0 auto;">
<table id="myTable" class="table table-striped table-bordered dt-responsive nowrap" width="100%" cellspacing="0">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
<th>Phone</th>
<th>EmployeeName</th>
<th>SOP</th>
<th>Status</th>
</tr>
</thead>
</table>
</div>
Но когда я отлаживаю код, я получаюследующая проблема.Также по какой-то причине мои кнопки редактирования и удаления не отображаются, я полагаю, что мне нужно кодировать их, прежде чем они отобразятся.Есть ли лучшие компоненты для работы с таблицами данных и ядром asp.net?.
![enter image description here](https://i.stack.imgur.com/m0gbs.png)
А также вот что показывает мой взгляд
![enter image description here](https://i.stack.imgur.com/BUy3P.png)
Редактировать 1 Хорошо, поэтому я сделал метод асинхронным, и это сработало, и там данные их, но он по-прежнему говорит, что в базе данных нет данных
public async Task<ActionResult> LoadGridData()
{
// Getting all Customer data
var data = await GetAllActivityHeader();
return Json(new { data = data });
}
![enter image description here](https://i.stack.imgur.com/I873y.png)
![enter image description here](https://i.stack.imgur.com/INgFj.png)
Наконец, это мой класс. Я не хочу отображать все вdatatable, поэтому я просто использовал заголовки столбцов, которые я хотел, или это не так, как работают datatables?.