나는 목록을 가지고 있고 그것을 분류하고정렬 가능한은 (알파벳 순)
sortable: {
mode: "single",
allowUnsort: false,
field: "LastName"
},
것은 내가 정렬 버튼을 클릭하면 필드가 알파벳 순으로 정렬되어 있는지하지만 먼저는 대문자로 사람을 보여줍니다 그 다음 작은 글자로 된 글자들 (나는 첫 번째 글자에 대해 말하고있다).
예 :
- 관리자
- 의사
- 프로그래머
- 과학자
- 의사
- 약사
- 수의사
는 내가하고 싶은 것은 이것이다 :
- 관리자
- 의사
- 의사
- 약사
- 프로그래머
- 과학자
- 수의사
여기 난 당신이 검도 UI 그리드를 사용하는 참조
var selectedUser = "";
var selectedUserID = "";
var selectedRole = "";
var Rolesgrid = "";
var Usersgrid = "";
var gridRolesToBeAdded = "";
var myIndex = 0;
var str = "LastName";
str.toLowerCase();
$(document).ready(function() {
window.location.hash = '#FormTitleHeading';
$("#UsersMenu")[0].childNodes[0].style.visibility = "visible";
$("#UsersMenu")[0].childNodes[1].style.visibility = "visible";
$("#RolesMenu")[0].childNodes[0].style.visibility = "visible";
$("#RolesMenu")[0].childNodes[1].style.visibility = "visible";
$("#UsersMenu")[0].childNodes[0].title = "Add New User";
$("#UsersMenu")[0].childNodes[1].title = "Delete Selected User";
$("#RolesMenu")[0].childNodes[0].title = "Add Roles to User";
$("#RolesMenu")[0].childNodes[1].title = "Delete Selected Role";
Usersgrid = $("#grdUsers").kendoGrid({
dataSource: {
type: "application/jsonp",
transport: {
read:
{
url: "http://" + servername + "/uBillingServices/Security/Security.svc/getUsers",
dataType: "json",
data: {
LanguageID: 'en'
}
}
},
sort: { field: "LastName"},
schema: {
model: {
fields: {
UserID: { type: "string" },
UserName: { type: "string" },
FirstName: { type: "string" },
LastName: { type: "string" },
AvatarURL: { type: "string" }
}
}
}
},
dataBound: function (e) {
row = e.sender.tbody.find(">tr:not(.k-grouping-row)").eq(myIndex);
if (row.length == 0) {
e.sender.select(e.sender.tbody.find(">tr:first"));
}
else {
e.sender.select(row);
}
},
change: function (arg) {
var UserIDrow = this.select(),
selectedUserx = this.dataItem(UserIDrow).UserName;
selectedUserID = this.dataItem(UserIDrow).UserID;
selectedUser = selectedUserx;
myIndex = this.select().index();
$('#UserDetailsView').load('<%= Url.Action("EditUser","Administration") %>');
// $.get('<%= Url.Action("EditUser","Administration") %>', function(data) {
// $('#UserDetailsView').empty();
// $('#UserDetailsView').append(data);
// });
if (Rolesgrid == "") {
Rolesgrid = $("#gridRoles").kendoGrid({
dataSource: {
type: "application/jsonp",
transport: {
read:
{
url: "http://" + servername + "/uBillingServices/Security/Security.svc/getRoleMembership",
dataType: "json",
data: {
UserName: selectedUser,
LanguageID: 'en'
}
}
},
sort: { field: "RoleName", dir: "asc" },
schema: {
model: {
fields: {
RoleID: { type: "string" },
RoleName: { type: "string" }
}
}
}
},
change: function (arg) {
var selectedr = $.map(this.select(), function (item) {
return $(item).text();
});
selectedRole = selectedr[0];
},
dataBound: function (e) {
e.sender.select(e.sender.tbody.find(">tr:first"));
},
selectable: "multiple",
pageable: false,
scrollable: true,
navigatable: true,
filterable: true,
sortable: {
mode: "single",
allowUnsort: false,
field: "LastName"
},
editable: false,
height: 160,
columns: [{
field: "RoleName",
title: "Assigned Roles",
headerAttributes: {
style: "font-size:small; text-align:center"
}, attributes: { style: "text-align:left" }
}]
});
}
else {
Rolesgrid.getKendoGrid().dataSource.transport.options.read.data.UserName = selectedUser;
var data = [{}];
Rolesgrid.getKendoGrid().dataSource.data(data)
Rolesgrid.getKendoGrid().dataSource.read();
}
},
selectable: "multiple",
pageable: false,
filterable: {
field: "LastName"
},
scrollable: true,
sortable: {
field: "LastName",
mode: "single",
allowUnsort: false
},
editable: false,
navigatable: true,
height: 250,
width: 100,
rowTemplate: kendo.template($("#rowUsersTemplate").html()),
columns: [{
field: "LastName",
title: "Users", attributes: { style: "text-align:right" }
}]
});
var winNewUser = $("#NewUserWindow").kendoWindow({
width: "480x",
height: "450px",
title: "Add New User",
content: "/Administration/AddNewUser",
actions: ["Close"],
modal: true,
resizable: false,
visible: false,
shadow: false
}).data("kendoWindow");
// var winEditUser = $("#EditUserWindow").kendoWindow({
// width: "480x",
// height: "450px",
// title: "User Details",
// content:"/Administration/EditUser",
// actions: ["Close"],
// modal: false,
// resizable: false,
// visible: false,
// draggable: false,
// animation: false,
// }).data("kendoWindow");
});
function AddRoletoUser(e) {
if (e.item.textContent == "+") {
var win = $("#RolesWindow").kendoWindow({
width: "505px",
height: "310px",
title: "Add Roles to User",
content: "/Administration/AddUserInRole",
actions: ["Close"],
modal: true,
resizable: false,
visible: false
}).data("kendoWindow");
win.center();
win.open();
}
else if (e.item.textContent == "-") {
var agree = confirm("Are you sure you want to delete the Assigned Role ?");
if (agree) {
jsonData = "UserName=" + selectedUser + "&RoleName=" + selectedRole;
$.ajax({
type: 'GET',
crossDomain: true,
url: 'http://' + servername + '/uBillingServices/Security/Security.svc/deleteRoleFromUser',
dataType: 'jsonp',
contentType: "application/json",
async: false,
data: jsonData,
success: function (data) {
},
error: function (data) {
}
});
Rolesgrid.getKendoGrid().dataSource.read();
}
else
return false;
}
}
function AddNewUser(e) {
if (e.item.textContent == "+") {
var win = $("#NewUserWindow").data("kendoWindow");
win.refresh();
win.center();
win.open();
}
else if (e.item.textContent == "-") {
var agree = confirm("Are you sure you want to delete the User ?");
if (agree) {
jsonData = "UserName=" + selectedUser;
$.ajax({
type: 'GET',
crossDomain: true,
url: 'http://' + servername + '/uBillingServices/Security/Security.svc/deleteUser',
dataType: 'jsonp',
contentType: "application/json",
async: false,
data: jsonData,
success: function (data) {
$("#grdUsers").getKendoGrid().dataSource.read();
},
error: function (data) {
$("#grdUsers").getKendoGrid().dataSource.read();
}
});
}
else
return false;
}
}
@mdcuesta는 클라이언트에서이를 얻을 수있는 공식적인 방법이 없다고 말했지만 서버에서 할 수있는 가능성은 매우 높습니다. 데이터가 서버 (로컬 JSON이 아님)에서 제공되기 때문에 ['serverSorting'] (http://docs.kendoui.com/api/framework/datasource#serversorting-booleandefault)를 확인하는 것이 좋습니다 – OnaBai