2017-06-01 56 views
1

目標是將數據從Controller一側導入Select2元素(多選切換打開)。我想安裝到看起來像在堆棧溢出的標籤盒,其中,你就可以開始輸入標籤,選擇它,後來選擇另外一個。使用AJAX將基於JSON的遠程數據導入到Select2

我一直在使用Select2文檔作爲參考,但是請求沒有被髮送到控制器。

Select2 Documentation

我的代碼:

$(".jsData").select2({   
    ajax: { 
     contentType: 'application/json', 
     url: '<%=Url.Action("GetDataMethod","RelevantController")%>', 
     type: 'POST', 
     dataType: 'json', 
     data: function (term) { 
      return { 
       sSearchTerm: term 
      }; 
     }, 
     results: function (data) { 
      var datajs = $.map(data, function (obj) { 
       obj.text = obj.someterm; // desired field, 
       obj.id = obj.someId; 
       return obj; 
      }); 
      return { 
       results: JSON.parse("[" + datajs.split(",") + "]") 
      }; 
     } 
    }, 
    multiple: true   
}); 

我是比較新的數據將動態地選擇2,所以任何幫助將是非常讚賞。謝謝!

+0

是否使用'ASPX'視圖引擎? – Manoj

+0

是的,我使用的ASPX(C#)視圖引擎。 –

回答

0

UPDATE:找到了解決辦法,在這裏張貼他人。

HTML

<input class="jsData" style="width: 100%" id="select2Data" ></input> 

Javascript

   $(".jsData").select2({ 
         ajax: { 
          minimumInputLength: 4, 
          contentType: 'application/json', 
          url: '<%=Url.Action("GetData","Controller")%>', 
          type: 'POST', 
          dataType: 'json', 
          data: function (term) { 
           return { 
            sSearchTerm: term 
           }; 
          }, 
          results: function (data) { 
           return { 
            results: $.map(JSON.parse(data), function (item) { 
             return { 
              text: item.term, 
              slug: item.slug, 
              id: item.Id 
             } 
            }) 
           }; 
          } 
         }, 
         multiple: true 
        }); 
相關問題