2012-12-27 5 views
1

나는 목록을 가지고 있고 그것을 분류하고정렬 가능한은 (알파벳 순)

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; 
     } 


    } 
+0

@mdcuesta는 클라이언트에서이를 얻을 수있는 공식적인 방법이 없다고 말했지만 서버에서 할 수있는 가능성은 매우 높습니다. 데이터가 서버 (로컬 JSON이 아님)에서 제공되기 때문에 ['serverSorting'] (http://docs.kendoui.com/api/framework/datasource#serversorting-booleandefault)를 확인하는 것이 좋습니다 – OnaBai

답변