2013-01-15 2 views
2
는 내가 데모처럼 내 외래 키 필드의 드롭 다운 목록을 사용하여 문제가있다

: http://demos.kendoui.com/web/grid/foreignkeycolumn.html외래 키 필드 가져 오기 '[개체 개체]'값이 원래의 필드 값 editRow가 null

차이가있는 외래 키 필드가 다른 모델과 관련이없는 경우 null 일 수있는 모델입니다. 그렇다면 나에 대한 문제는이 foreignkey 필드의 원래 값이 null 인 editRow를 시도 할 때이며 다른 값으로 변경하려고 할 때이 필드는 항상 '[object object]'값을 가져옵니다. 나는 이유를 모른다.

다음 코드에서 바닥 필드를 참조하십시오

<script> 
    $(document).ready(function() { 
     var template = kendo.template($("#detail_template").html()); 

     function show_menu_details(menuObj) { 
      var tg = $("#details"); 
      tg.fadeOut(function(){ 
       tg.html(template(menuObj)); 
       tw = tg.find(".k-window"); 


       tw.css({width:tg.innerWidth()-30, height:tg.innerHeight()-55, "margin-top": 20, "margin-left":15}); 
      }); 
      tg.fadeIn(); 
     } 

     $("#horizontal").kendoSplitter({ 
      panes: [{collapsible: true, size: "180px"}, 
        { collapsible: true} ], 
      height: 690 
     }); 

     function onChange(e){ 
      e.preventDefault(); 
      selectedObj = this.dataSource.getByUid(this.select().data('uid')) 
      //console.log(selectedObj);//(this.dataSource.data()); 
      show_menu_details(selectedObj); 
     } 

     var statuses = [ 
      {value:'', text:'--'}, 
      {value:'Available', text:'Available'}, 
      {value:'Locked', text:'Locked'}, 
      {value:'Reserved', text:'Reserved'}, 
      {value:'Occupied', text:'Occupied'}]; 
     var floors = new Array(); 
     floors[0]={text:'--',value:''}; 
     _DS_Floor.fetch(function(data){ 
      $.each(data.items,function(index,obj){ 
       floors[index+1] = {text: obj.name, value: obj.id}; 
      }); 

      var grid = $("#list").kendoGrid({ 
       dataSource: _DS_Room, 
       selectable: "row", 
       filterable: true, 
       columnMenu: true, 
       pageable: {refresh:true}, 
       editable: {mode:"popup",confirmation:"Sure to delete?"}, 
       height: 688, 
       scrollable: { 
        virtual: true 
       }, 
       sortable: true, 
       toolbar: kendo.template($("#toolbar_template").html()), 
       columns: [//{field:'id',title:' ',width:40,template: '<input type="checkbox" id="#= id #" />'}, 
          {field:'name',title:'Name'}, 
          {field:'floor',title:'Floor',values:floors}, 
          {field:'position',title:'Position'}, 
          {field:'status',title:'Status',width:80,values:statuses}],//_Columns_Menu,//{ command: ['edit','destroy'], title: "", width: "200px" } 
       //change: onChange 
      }); 

      grid.find("#btn-add").click(function(e){ 
       e.preventDefault(); 
       grid.data("kendoGrid").addRow(); 
      }); 

      grid.find("#btn-save").click(function(e){ 
       e.preventDefault(); 
       grid.data("kendoGrid").saveChanges();//editRow(grid.data("kendoGrid").select()); 
      }); 

      grid.find("#btn-remove").click(function(e){ 
       e.preventDefault(); 
       grid.data("kendoGrid").removeRow(grid.data("kendoGrid").select()); 
      }); 

      grid.find("#btn-cancel").click(function(e){ 
       e.preventDefault(); 
       grid.data("kendoGrid").cancelChanges();//removeRow(grid.data("kendoGrid").select()); 
      }); 

     }); 

    }); 
</script> 

감사합니다.

답변

1

null 값은 지원되지 않습니다. Here은 블라디미르 일리 예프가 설명과 해결책을 제공 한 KendoUI 포럼의 질문입니다. 이게 도움이 되길 바란다.

+0

2017 년에도 여전히 그렇습니까? 널 (null)이 지원되지 않는다는 것이 미친 듯이 보입니다. 솔루션은 해킹입니다. – sheamus