2017-10-22 8 views
0

kendoGid를 사용하여 데이터를 표시하고 있으며 (userName, firstName, lastName, email, phoneNumber, roleName, supplierCode) 필드가 있습니다. 데이터를 정확하게 얻고 있으며, 모든 CRUD 작업이 훌륭하게 수행되고 있습니다. 당신이 내 열 정의에 위에서 볼 수 있듯이여러 사용자 정의 검도 편집기

 var grid = $("#grid").kendoGrid({ 
     dataSource: usersDataSource, 
     schema: { 
      model: { 
       id:"$id", 
       fields: { 
        userName: { }, 
        firstName: { }, 
        lastName: { }, 
        email: { }, 
        phoneNumber: { }, 
        roleName: { }, 
        supplierCode: { } 
       } 
      } 
     }, 
     editable: "popup", 
     edit: function (e) { 
      $(e.container).find('input[name="prontoCode"]').attr({ "hidden": true }); 

     }, 
     columns: 
       [  .....Other Fields Definition ... 
        { 
         field: "roleName", 
         title: "Role Name", 
         editor: rolesDropDownEditor 
        }, 
        { 
         field: "prontoCode", 
         title: "Supplier Code", 
         editor: supplierDropDownEditor, 
        } 
       ], 
    }); 

, 나는 사용자 정의 편집기 (kendoDropDown)과 검도 팝업 편집 속성을 사용 :

여기 내 그리드 코드입니다. 여기 이 rolesDropDownEditor에 대한 코드입니다 rolesDropDown에서

 function rolesDropDownEditor(container, options) { 
     $('<input required name="' + options.field + '"/>') 
      .appendTo(container) 
      .kendoDropDownList({ 
       dataSource: { 
        transport: { 
         read: { 
          url: "URL", 
          type: "get", 
          datatype: "json", 
         } 
        } 
       }, 
       change: function (e) { 
        if (e.val == "Supplier") { 
        $(e.container).find('input[name="prontoCode"]').attr({ "hidden": false }); 
        } 
       } 
      }); 
    } 

값은 (관리자, 관리자, 엔지니어 & 공급자는), I는 사용자가 roleDropDown에서 "공급 업체"를 선택하면 supplierDropDown을 보여주고 싶은 ... 모든에 도움 다른 사람의 변경 기능으로 한 드롭 다운을 표시하거나 숨길 수있는 방법은 무엇입니까? 고맙습니다

답변

0

공급 업체 DropDownEditor에서 TR (행)을 찾으십시오.

var tr = $("#grid").data("kendoGrid").dataItem($(container[0]).closest("tr")) 

tr.roleName 값을 찾습니다.

에 따르면 roleName에 따라 다른 데이터 소스를 만들 수 있습니다 (if-else 블록을 삽입하고 다른 ajax 호출을 추가하면 됨). 필요한 데이터 소스를 바인딩하십시오.

추가 설명이 필요한 경우 알려 주시기 바랍니다.