2013-02-22 4 views
0

서버에서 응답이 다시 나타나고 모든 것이 정상적으로 보이지만 자동 완성 위젯에 대한 항목이 표시되지 않았습니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있다면, 그것은 대단히 감사 할 것입니다. 사전에Kendo MVVM 자동 완성으로 항목을로드하지 않습니다.

{"d":[{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":0,"Name":"Name0"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":1,"Name":"Name1"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":2,"Name":"Name2"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":3,"Name":"Name3"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":4,"Name":"Name4"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":5,"Name":"Name5"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":6,"Name":"Name6"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":7,"Name":"Name7"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":8,"Name":"Name8"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":9,"Name":"Name9"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":10,"Name":"Name10"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":11,"Name":"Name11"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":12,"Name":"Name12"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":13,"Name":"Name13"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":14,"Name":"Name14"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":15,"Name":"Name15"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":16,"Name":"Name16"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":17,"Name":"Name17"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":18,"Name":"Name18"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":19,"Name":"Name19"}]} 

자동 완성 정의와

<input id="acMedications" data-role="autocomplete" data-text-field="Name" data-bind="source: dsMedication, value: SelectedMedication" 
     style="width: 400px;" placeholder="Enter value..." /> 

의 ViewModel 바인딩 및 데이터 소스 정의

$(document).ready(function() { 
     var viewModel = kendo.observable({ 
      dsMedication: new kendo.data.DataSource({ 
       transport: { 
        read: { 
         contentType: "application/json; charset=utf-8", 
         type: "POST", 
         url: "../Services/svcMedication.asmx/SearchMedication", 
         dataType: "json", 
         cache: false 
        }, 
        update: { 
         contentType: "application/json; charset=utf-8", 
         type: "POST", 
         url: "../Services/svcMedication.asmx/SaveMedication", 
         dataType: "json", 
         cache: false 
        }, 
        destroy: { 
         url: "../Services/svcMedication.asmx/DeleteMedication", 
         type: "DELETE", 
         dataType: "json", 
         cache: false 
        }, 
        create: { 
         url: "../Services/svcMedication.asmx/SaveMedication", 
         type: "PUT", 
         cache: false 
        }, 
        parameterMap: function(options, operation) { 
         if (operation !== "read" && options.models) { 
          return { 
           models: kendo.stringify(options.models) 
          }; 
         } 
         options.MedicationParam = $('#acMedications').val(); 
         return kendo.stringify(options); 
        } 
       }, 
       batch: true, 
       schema: { 
        data: "d", 
        model: { 
         id: "MedicationId", 
         fields: { 
          MedicationId: { 
           type: "number" 
          }, 
          Name: { 
           type: "text" 
          } 
         } 
        } 
       }, 
       success: function(data) { 
        alert(data); 
       } 
      }), 
      SelectedMedication: null, 
      HasChanges: false, 
      save: function() { 
       this.dsMedication.sync(); 
       this.set("HasChanges", false); 
      }, 
      remove: function() { 
       if (confirm("Are you sure you want to delete this record?")) { 
        this.dsMedication.remove(this.SelectedMedication); 
        this.set("SelectedMedication", this.dsMedication.view()[0]); 
        this.change(); 
       } 
      }, 
      showForm: function() { 
       return this.get("SelectedMedication") !== null; 
      }, 
      change: function() { 
       this.set("HasChanges", true); 
      } 
     }); 

     kendo.bind($("#fmMedication"), viewModel); 
    }); 

감사 : 서버에서

응답 나는 자동 완성 상자에 뭔가를 입력 할 때!

답변

2

사용하지 않으려 고 시도했습니다. 여기에 내가 노력 코드입니다 :

var viewModel = kendo.observable({ 
      dsMedication: new kendo.data.DataSource({ 
       transport: { 
        read: function(options) { 
        options.success(
{"d":[{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":0,"Name":"Name0"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":1,"Name":"Name1"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":2,"Name":"Name2"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":3,"Name":"Name3"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":4,"Name":"Name4"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":5,"Name":"Name5"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":6,"Name":"Name6"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":7,"Name":"Name7"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":8,"Name":"Name8"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":9,"Name":"Name9"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":10,"Name":"Name10"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":11,"Name":"Name11"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":12,"Name":"Name12"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":13,"Name":"Name13"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":14,"Name":"Name14"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":15,"Name":"Name15"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":16,"Name":"Name16"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":17,"Name":"Name17"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":18,"Name":"Name18"},{"__type":"BlaBla.Services.svcMedication+Medication","MedicationId":19,"Name":"Name19"}]}      
        ); 
        } 
       }, 
       batch: true, 
       schema: { 
        data: "d", 
        model: { 
         id: "MedicationId", 
         fields: { 
          MedicationId: { 
           type: "number" 
          }, 
          Name: { 
           type: "text" 
          } 
         } 
        } 
       } 
      }), 
      SelectedMedication: null 
     }); 

kendo.bind(document.body, viewModel); 

는 그리고 여기에 라이브 데모입니다 : http://jsbin.com/ahiyay/2/edit

0

올바른 코드가 작동합니다

VAR의 ViewModel = kendo.observable ({ 데이터 소스 : 새로운 (" _type": "0", " BlaBla.Services.svcMedication + Medication ","MedicationId ": 1,"Name ":"남 2, "Name": "Name2"}, { " _type": "BlaBla.Services.svcMedication + Medication", "MedicationId" ","MedicationId ": 3,"Name ":"Name3 "}, {"_ "유형 :"BlaBla.Services.svcMedication + Medication ","MedicationId ": 4,"Name ":"Name4 "}} "_type": "BlaBla.Services.svcMedication + Medication", "MedicationId": 5, "Name": "Name5"}, { "_ 유형": "BlaBla.Services.svcMedication + Medication", "MedicationId" : 6, "Name": "Name6"}, { " _type": "BlaBla.Services.svcMedication + Medication", "MedicationId": 7, "Name": "Name7"}, { "_ type" "BlaBla.Services.svcMedication + Medication", "MedicationId": 9, "Name": "Name8"}, { " _type": "BlaBla.Services.svcMedication + : "Name9"}, { "_ "유형 : "BlaBla.Services.svcMedication + Me 10, "Name": "Name10"}, { " _type": "BlaBla.Services.svcMedication + Medication", "MedicationId": 11, "Name": "Name11"}} "_type": "BlaBla.Services.svcMedication + Medication", "MedicationId": 12, "Name": "Name12"} " : 13, "Name": "Name13"}, { "_ "유형 : "BlaBla.Services.svcMedication + Medication", "MedicationId": 14, "Name": "Name14"}, { " _type" "BlaBla.Services.svcMedication + Medication", "MedicationId": 15, "Name": "Name15"}, { "_ 유형": "BlaBla.Services.svcMedication + Medication", "MedicationId": 16, "Name ":"Name16 "}, {" _type ":"BlaBla.Services.svcMedication + Medication ","MedicationId ": 17,"Name ":"Name17 "}, {"_ 유형 ":"BlaBla.Services. svcMedication + Medication ","MedicationId ": 18,"Name ":"Name18 "}, {", "Name": "Name19"}] }), dataTextField : "이름", SelectedMedication : null });

kendo.bind(document.body, viewModel); 
관련 문제