2014-10-09 83 views
1

有一個現有解決方案我被要求使用Select2 JQuery庫進行增強。ASP.NET UpdatePanel中的Select2 JQuery問題

有一個updatepanel保存按鈕。在那updatepanel是一個ASP.NET DropDownList

在文件準備好我發出

$('.dropdownspecificclass').select2(); 

當第一頁使得它看起來如預期的那樣DropDownList有標籤查看選擇二提供。

點擊保存按鈕,保存過程完成async不需要刷新頁面,但選擇二下拉列表失去它選擇二的造型,現在只是看起來像一個普通的下拉列表。

如果我嘗試將Select2類應用於控件的CssClass屬性,則客戶端發生JavaScript錯誤。 「爲選擇二沒有定義未捕獲的查詢功能selectControlName

的思考?

回答

0

問題不在於select2。它似乎是一個已知的問題,我想你一定會從這裏得到一些幫助: Conflicts between ASP.NET AJAX UpdatePanels & jQuery functions

在觸發任何ajax之後,有關於jquery問題的完整解釋,並且還有各種建議的解決方法。

如果沒有與上面完全沒有問題,你可以嘗試重新初始化.select2().done()事件的異步的。

+0

我們正在使用的JQuery版本我相信會繞過這個事件的客戶端綁定。所有其他使用Jquery的響應邏輯繼續工作。我們使用$(selector).on(「click」)來代替$(selector).click。我相信像生活和手錶這樣的改變。 .done()是否指endRequestHandler?我們在endRequestHandler中重新初始化沒有成功。 – 2014-10-10 16:42:15

1

根據設計和documentation of select2選擇html元素不需要任何特殊的解析(數據從select的選項標籤解析),限制選擇器只選擇元素(在上例「ASP.NET DropDownList」呈現爲選擇html元素)我推薦以下變化

「爲選擇二未定義未捕獲查詢功能」異常的出現通常比選擇元素的情況下其他。

//Replace your selector by prefixing select as below and then give a try 
$('select.dropdownspecificclass').select2(); 
+0

你能否擴展你的答案,爲什麼要這樣工作? – 2014-10-10 21:34:50

2

我有同樣的問題。不要在document.ready函數中給出命令,而應該在pageLoad函數中給它。 pageLoad函數將在部分回發期間執行。

function pageLoad(sender, args) { 
     $(".dropdownspecificclass").select2(); 
    }