내 프로젝트 중 하나에서 MVC.JQuery.DataTables 버전 1.5.36을 사용하고 있습니다. Ajax 옵션을 사용하여 서버 측에서 데이터를 쿼리합니다. 나는 버전 1.3에서 업데이트 한 후MVC.JQuery.DataTables - 정렬 작업이 없습니다.
function CreateMyTasksDataTable(elementId, url, data) {
if (tasksTable != null) {
tasksTable.destroy();
}
tasksTable = $('#' + elementId).DataTable({
"language": {
"url": "/scripts/locales/DataTable/@(Model.DatatableLanguageCode).json"
},
dom: '<"html5buttons"B>lTfgitp',
buttons: [
{ extend: 'copy' },
{ extend: 'csv' },
{ extend: 'excel', title: '@Strings.MyTasks' },
{ extend: 'pdf', title: '@Strings.MyTasks' },
{
extend: 'print',
customize: function (win) {
$(win.document.body).addClass('white-bg');
$(win.document.body).css('font-size', '10px');
$(win.document.body).find('table')
.addClass('compact')
.css('font-size', 'inherit');
}
}
],
autoWidth: false,
pageLength: 50,
responsive: true,
ajax: { url: url, type: "POST", data: data },
serverSide: true,
searching: false,
stateSave: true,
columns: [
{ data: "Title" },
{ data: "Id" },
{ data: "ListTitle" },
{ data: "DueDateString" },
//{
// data: {
// _: "DueDateString",
// sort: "DueDateFileTimeUTC"
// }
//},
{ data: "Status" },
{ data: "Effort" },
{ data: "WorkUnits" },
{ data: "TotalWork" },
{ data: "Id" }
],
columnDefs: [
{
render: function (data, type, row) {
var rowHtml = "<button class='ladda-button btn btn-sm btn-primary btn-3-3 btn-edit' data-style='slide-up' onclick='LoadEditTaskWindow(\"" + row.Id + "\", \"" + row.ListId + "\");'><i class='fa fa-pencil' style='margin-right:5px;'></i> @Strings.ButtonEdit</button>";
return rowHtml;
},
targets: 8
},
{
render: function (data, type, row) {
var rowHtml = '<a href="@Url.Action("Tasks", "TaskBoard")?listId=' + row.ListId + '">' + row.ListTitle + '</a>';
return rowHtml;
},
targets: 1
},
{
render: function (data, type, row) {
var rowHtml = '';
if (row.IsNew) {
rowHtml = rowHtml + " <span class='label label-success'>@Strings.New</span>";
}
if (row.Stuck) {
rowHtml = rowHtml + " <span class='label label-warning'>@Strings.OnHold</span>";
}
if (row.IsOverdue) {
rowHtml = rowHtml + " <span class='label label-danger'>@Strings.OverDue</span>";
}
return rowHtml;
},
targets: 2
}
]
});
$('#' + elementId).on('draw.dt', function() {
stop_laddaButtons();
init_laddaButtons();
});
}
:
public async Task<ActionResult> GetAllMyTasksTable(DataTablesParam dataTableParam, DateRangeQueryOption queryParameters)
{
var currentUser = await UserService.CurrentUser();
var timezoneOffsetMinutes = UserSettings.UTCOffsetMinutes;
var tasks = TaskBoardService.GetAllMyTasks(currentUser, queryParameters, timezoneOffsetMinutes).OrderBy(t => t.DueDate).ThenBy(t => t.ListTitle);
return DataTablesResult.Create(tasks.Select(t => new SPTaskViewModel(t.Id, t.Title)
{
ListTitle = t.ListTitle,
DueDateString = t.DueDateString,
Status = t.Status,
Effort = t.Effort,
WorkUnits = t.WorkUnits,
TotalWork = t.TotalWork
}).AsQueryable().Cast<SPTaskViewModel>(), dataTableParam, new ResponseOptions<SPTaskViewModel>() { ArrayOutputType = ArrayOutputType.ArrayOfObjects });
}
자바 스크립트에서 클라이언트 측의 데이터 테이블의 구성은 이것이다 : 데이터를 검색 할 수
컨트롤러 액션은 다음과 같다. xx, 정렬 작업이 중지되었습니다.
내 데이터/구성에 문제가 있는지, 정렬 작업이 중단되었는지 알 수 없습니다.
누구나 비슷한 문제가 있었고 해결책을 찾았습니까?
이
내가 자바 스크립트 객체
안녕하세요, 저는 Mvc.JQuery.DataTables .NET 코드를 작성했습니다. 당신이 습득하려고하는 것에 대해 조금 혼란 스럽습니다. 서버 측 정렬 만 시도합니까? 즉 클라이언트가 제어하지 못합니까? – mcintyre321
안녕하세요, 클라이언트 측 정렬을 수행하고 싶습니다. 내 프로젝트에서 버전 1.3.56에서 1.5.36으로 업데이트했습니다. 업데이트 후에 클라이언트 측 정렬이 더 이상 작동하지 않았습니다. 나는 다시 작동 시키려고 많은 일을 시도했지만 어떤 이유인지 찾을 수 없었습니다. 왜 정렬 작업이 멈췄습니다. 내가 다시 다운 그레이드 한 후 이전처럼 작동했습니다. 테이블의 열 머리글을 클릭하면 1.5.36을 사용하여 아무 일도 일어나지 않습니다. 이상한 점은 서버 측이 클라이언트 측과 어떤 관계가 있는지입니다 ... 문제를 재현 할 수 있습니까, 아니면 그냥 내 프로젝트에서 일어날 수 있습니까? –
Fiddler를 사용하여 게시 된 데이터를 캡처 할 수 있습니까? 필터 옵션이 올바르게 전달되는지 확인하십시오. – mcintyre321