2014-10-08 2 views
1

Kendo Datasource에 문제가 있습니다. 변경 사항이 수정 된 Object로 인해 발생하는 경우 업데이트가 실행되지 않습니다. Kendo 데이터 소스로 업데이트가 작동하지 않습니다.

데이터 소스

은 매우 간단합니다 : 시험에 대한

collection: new kendo.data.DataSource({ 
     autoSync: false, 
     batch: true, 
     transport: { 
      read: { 
       url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignettes_Read", 
       dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
      }, 
      update: { 
       url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignette_Update", 
       dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
      }, 
      schema: { 
       model: { 
        id: "Id" 
       } 
      } 
     }, 
     change: function (e) { 

      console.log(this); 
      console.log(e); 

      //Not working too 
      //if (e.action == "itemchange") { 
      // debugger; 
      // vignettesViewModel.collection.pushUpdate(e.items[0]); 
      //} 

      $('.vignette').detach(); 
      for (var i = 0; i < vignettesViewModel.collection.data().length; i++) { 
       vignettesViewModel.createVignetteUI(vignettesViewModel.collection.data()[i]);      
      } 

      vignettesViewModel.init() 
     } 
    }) 

는 자동 동기화가 false로 설정하고 배치가 true로 설정되어있다.

나중에 코드에서, 나는 데이터 소스를 업데이트하고 나는

//Some logic up 
     var data_hospit = vignettesViewModel.getByUid($(ui.element).data('uid')); 
    //Another logic 
     data_hospit.set('date_debut', cellDepart.data('date')); 
     data_hospit.set('date_fin', cellArrivee.data('date')); 
     data_hospit.set('PrenomNomEtDateDeNaissance', 'toto'); 

     vignettesViewModel.collection.sync(); 

업데이트가 해고되지 않는() 메소드 동기에 의해 명시 적으로 데이터 소스를 발사하지만 그 목적은 변경 기능을 통해 이동 변경도 참조하십시오. 왜 업데이트가 실행되지 않는 이유는 무엇입니까? ID가 'Id'인 모델을 잘 정의했으며 업데이트 문자열을 더미 함수 alert()로 변경하면이 작업도 효과가 없습니다. 내가 pushUpdate에 "힘"갱신을 시도했다 그러나 나는 오류를

답변

1

schematransport의 일부가 아닌 당신의 도움에 대한 "정의되지 않은 함수"

감사를 가지고, 당신은 썼다 :

transport: { 
     read: { 
      url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignettes_Read", 
      dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
     }, 
     update: { 
      url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignette_Update", 
      dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
     }, 
     schema: { 
      model: { 
       id: "Id" 
      } 
     } 
    }, 

그것은이어야합니다 :

transport: { 
     read: { 
      url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignettes_Read", 
      dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
     }, 
     update: { 
      url: "http://localhost:81/GPL/Main/Sources/GPL.Web.MVC/Vignette/Vignette_Update", 
      dataType: "json" //"jsonp" is required for cross-domain requests; use "json" for same-domain requests 
     } 
    }, 
    schema: { 
     model: { 
      id: "Id" 
     } 
    } 
+0

당신은 저를 구합니다. :) 고마워요. –

관련 문제