jquery - 使用 Asp.Net Core 找不到匹配的记录 jquery Datatable?
问题描述
我正在使用 jquery 数据表来显示记录。如果不是服务器端渲染,Datatable 工作正常。我在数据库中有大量记录。我已经实现了分页,但它不起作用。这是代码:
var table = $('#studentDataTable').dataTable({
serverSide: true,
"searching": false,
paging:true,
ajax: {
url: '/Student/GetAllStudent/',
type: 'POST',
dataSrc: ''
},
columns: [
{
'data': 'FirstName',
},
{
'data': 'rollNumber',
'searchable': false,
},
{
'data': 'fatherName',
'searchable': false,
},
{
'data': 'className',
'searchable': false,
},
{
'sortable': false,
'searchable': false,
},
]
});
服务器端操作返回 6 条记录,但数据表始终显示未找到匹配记录。这是服务器响应
{"draw":1,"recordsTotal":100,"recordsFiltered":6,"data":[{"id":1,"userId":"f2992e53-df6a-4eb0-8127-0d2d54de316d","firstName":"Umer","lastName":"Waheed","fatherName":"Abdul","gender":1,"nationality":0,"religionId":0,"email":"yu@gmailcom","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"4512","username":"Umer_10","className":"Grade 1","classId":3,"sectionName":"C","sectionId":16,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null},{"id":2,"userId":"59cdc2be-aa3e-4c6d-83fc-97e3b0e7200e","firstName":"1","lastName":"1","fatherName":"1","gender":1,"nationality":0,"religionId":0,"email":"1","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"1","username":"1_25","className":"Grade 1","classId":3,"sectionName":"C","sectionId":16,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null},{"id":3,"userId":"a03a0ec5-6fa6-45f0-897e-ceb2647c8f20","firstName":"2","lastName":"2","fatherName":"21","gender":1,"nationality":0,"religionId":0,"email":"20","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"562","username":"2_26","className":"Grade 1","classId":3,"sectionName":"C","sectionId":16,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null},{"id":4,"userId":"d0709531-acfb-4c07-96a0-3b59f9f5e9a8","firstName":"sdfas","lastName":"asdf","fatherName":"asdf","gender":1,"nationality":0,"religionId":0,"email":"asdf","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"sdaf","username":"sdfas_27","className":"Grade 1","classId":3,"sectionName":"D","sectionId":17,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null},{"id":5,"userId":"5d16c8d0-bc72-4a70-8a69-7252e273805c","firstName":"4563","lastName":"1352","fatherName":"iujs","gender":1,"nationality":0,"religionId":0,"email":"umas","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"sdfa","username":"4563_30","className":"Grade 1","classId":3,"sectionName":"A","sectionId":12,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null},{"id":6,"userId":"b45897e7-7187-4733-b75f-64baff03786c","firstName":"hello","lastName":"ksdjf","fatherName":"hjsjhd","gender":1,"nationality":0,"religionId":0,"email":"sdfasdfasdf","birthPlace":0,"dateOfBirth":null,"academicYearId":3,"classSectionId":0,"educationCategoryId":0,"admissionCategoryId":0,"branchId":0,"rollNumber":"6853","username":"hello_31","className":"Grade 2","classId":4,"sectionName":"A","sectionId":12,"academicYearName":"20-21a","educationCategoryName":"E1","admissionCategoryName":"aa","pageNumber":0,"rowsOfPage":0,"searchByFirstName":null,"searchByLastName":null,"searchByFatherName":null,"searchByClassId":null,"searchBySectionId":null,"classes":null,"sections":null,"academicYears":null,"educationCategories":null,"admissionCategories":null,"classSections":null,"religions":null,"countries":null}]}
上面的代码有什么问题?
解决方案
这里有一些注释,应该可以解决我在问题中看到的问题:
您应该
dataSrc: ''
从 DataTables 定义中删除。这告诉 DataTables 查看 JSON 的根以显示要显示的数据行。但是,您的数据行位于名为data
. 默认情况下,DataTables 期望在一个名为data
- 的对象中找到它的数据,因此删除这一行等同于使用dataSrc: 'data'
.这看起来像一个错字:
'data': 'FirstName'
. 应该是:'data': 'firstName'
。这可能是也可能不是问题,但您的 final 字段没有声明
data
来源。它只包含sortable
和searchable
。也许您在问题中未显示的某处提供数据值 - 否则,您需要提供一个data
值。一个小点:您应该删除所有不需要的额外逗号。例如:
'data': 'FirstName',
。也许您只显示了表定义的一个子集——在这种情况下,这些逗号确实需要存在。但通常它们应该被删除。它们可能不会在这里造成问题 - 但在某些地方,这些额外的逗号会导致语法错误。
以上所有点将导致以下结果:
var table = $('#studentDataTable').dataTable({
serverSide: true,
"searching": false,
paging:true,
ajax: {
url: '/Student/GetAllStudent/',
type: 'POST'
},
columns: [
{
'data': 'FirstName'
},
{
'data': 'rollNumber',
'searchable': false
},
{
'data': 'fatherName',
'searchable': false
},
{
'data': 'className',
'searchable': false
},
{
'data': '<aValidFieldNameNeededInHere>',
'sortable': false,
'searchable': false,
}
]
});
如果您在进行这些更改后仍有问题,请查看浏览器控制台(通常是浏览器中的 F12)。任何错误消息都会显示在那里。
推荐阅读
- google-coral - 带有虚拟键盘的谷歌珊瑚亭模式
- jquery - 尝试在反应中创建 jquery 函数时出现错误
- python - python matplotlib:如何在只知道 x 值的曲线上添加点标记?
- powerbi - 获取正确的 DAX 小计
- python - 在窗口化应用程序上获取命令执行的输出
- android - Android Viewmodel 如何在内部工作,视图模型的内部工作
- python - pandas get_dummies 如何转换值
- c++ - c++ constexpr指针和constexpr比较
- python - 多线程是否适用于 Google Cloud CPU 实例?
- mongodb - 如何使用 mongo-driver 在 Go 中执行聚合