2017-01-04 30 views
0

HTML文件數據不加載到下拉

<select class="form-control" tabindex="-1" id="superId" name="superId[]" multiple="multiple" required="required" 
            data-bind="options: SupArray, 
             optionsText: 'emp_display_name', 
             value: supervisor, 
             optionsCaption: 'Choose...'"></select> 

JavaScript文件

function UI() { 

      var self = this; 

      self.SupArray = ko.observableArray([]); 
      self.EmployeeArray = ko.observableArray([]); 

      self.emp = ko.observable(""); 
      self.supervisor = ko.observable(""); 
      self.startDate = ko.observable(); 
      self.endDate = ko.observable(); 


      self.emp.subscribe(function (newValue) { 
       // alert(ID); 
       GetSupervisor(self.emp()); 

      }); 


     } 



     var DisplayUI = new UI() 
     ko.applyBindings(DisplayUI); 



    function GetSupervisor(emp) { 
      // alert(emp.empId); 
      var jsonData = ko.toJSON(DisplayUI); 
      $.ajax({ 
       url: "@Url.Action("GetSupervisorAll", "Registration")", 
       contentType: "application/json; charset=utf-8", 
       type: "POST", dataType: "json", 
       data:JSON.stringify({ empId: emp.empId}), 
       success: function (data) { 

      // debugger; 
        DisplayUI.SupArray(data); 
        var abc = DisplayUI.SupArray(); 
       // alert(abc); 
        $('#superId').select2(); 

       } 
      }); 
     } 

這裏當我加載主管後端數據來正確。

在ajax調用數據即將成功功能。

當我調試這個值傳遞給「成功:功能(數據)」。

但是值沒有附加到下拉列表中。

success: function (data) 

console.log(data) =>

enter image description here

+0

你在哪裏追加代碼,你在哪裏追加數據來選擇 –

+0

在GetSupervisor()函數中。在ajax中取得成功請致電 – RMBPMK

+1

我最好的猜測是'$('#superId')。select2();'打破了與DOM元素的連接。如果你想實例化某種jQuery小部件,你必須通過自定義綁定來完成,並確保它正確更新。 – user3297291

回答

0

最後,我找到了這個問題的答案。

function GetSupervisor(emp) { 
      // alert(emp.empId); 
      **if (emp != null) {** 

       var jsonData = ko.toJSON(DisplayUI); 
       $.ajax({ 
        url: "@Url.Action("GetSupervisorAll", "Registration")", 
        contentType: "application/json; charset=utf-8", 
        type: "POST", dataType: "json", 
        data:JSON.stringify({ empId: emp.empId}), 
        success: function (data) { 
         // console.log(data); 
         // debugger; 
         DisplayUI.SupArray(data); 
         var abc = DisplayUI.SupArray(); 
         // alert(abc); 
         $('#superId').select2(); 

        } 
       }); 
      }