2016-03-03 72 views
0

我目前有一個正在運行的小部件,它具有多個選項。該小部件位於彈出式窗口中,並帶有「保存」按鈕以及其他按鈕。當我單擊「保存」時,彈出窗口關閉,將選擇保存到數據庫中,自動運行數據庫中的查詢,並將結果顯示在DataView中。如何在Select2 4.0.1小部件打開時選擇選項?

現在,當我再次打開彈出窗口時,Select2小部件中的文本字段爲空。我希望它能夠獲取數據庫中的數據,並在打開時顯示它們。我已經設置了它,以便它返回一個應該是ID的字符串數組(這是我需要的部件來檢索正確的數據)。

所以我的問題是:我該如何去修改這個小部件,以便它可以接收一個數組並將它們顯示爲創建小部件時已經選擇的選項?

實際上,我也不太清楚什麼顯示我的代碼將在這種情況下做的,但爲了以防萬一,在這裏,他們是:

$("#select2").select2({ 
    placeholder: "Select materials...", 
    closeOnSelect: false, 
    ajax: { 
    url: this.targetUrl, 
    delay: 200, 
    dataType: 'json', 
    data: function(params) { 
     return { 
     code: params.term ? params.term + "*" : "*", 
     page: params.page || 1 
     }; 
    }, 
    processResults: function(data, params) { 
     params.page = params.page || 1; 
     var results = []; 
     for (var i = 0; i < (data.length >= 25 ? 25 : data.length); i++) { 
     results.push({ 
      id: data[i].code, 
      text: data[i].code 
     }); 
     } 
     return { 
     itemCode: results, 
     results: results, 
     pagination: false 
     }; 
    }, 
    cache: true 
    }, 
    maximumSelectionLength: 5, 
    escapeMarkup: function(markup) { 
    return markup; 
    } 
}); 
+0

你有沒有機會解決這個問題?如果沒有,我會盡力幫助你 –

+0

@Reddy No我一直沒有得到它的工作......您的幫助將不勝感激! –

+0

'我想讓它獲取數據庫中的數據,並在它打開時顯示在窗口小部件中,您想在第二次打開彈出窗口時執行此操作?第一次彈出時什麼都不做?你想在第二次彈出時顯示哪些數據與第一次不同? –

回答

0

選擇二將觸發幾個不同的事件時使用採取不同的行動該組件,允許您添加自定義掛鉤並執行操作。 如:「更改」事件,每當選擇或刪除選項時觸發。

所以你可以你的代碼你的問題,以程序上的控制你的選擇2後使用

$("#select2").val($selected).trigger("change"); 

高於$ selected是您從服務器端請求的數據。它應該是一個數組,如[「12」,「23」,「34」]。

希望能幫到你。

參考select2

相關問題