2014-07-01 56 views
0

我有一個MVC4應用程序。我的索引頁面包含一個設置JQuery UI選項卡。在每個選項卡中,我都有使用Ajax操作鏈接進行操作和更新的內容。在我的一個標籤中,我有一個Select2選項框。當第一次訪問該選項卡時,此框將正確呈現,並且腳本按照它們應有的功能運行。但是,當單擊其中一個AjaxActionLinks時,當部分視圖從控制器返回時,選項框會默認基本功能(Select2未啓用)。我相信這個問題可能是由於腳本沒有在返回的視圖上顯示而引起的。是否有辦法在從ActionResult返回部分視圖時重新呈現此腳本?Select2腳本無法正確呈現當視圖從動作返回結果

我的索引頁包含Select2.css:

<link rel="stylesheet" href="~/Content/select2.css"> 

我的選項卡包含Select2.js以及腳本加載和格式化選項框:

<script src="~/Scripts/select2.js"></script> 

<!--- Select2 Script --> 
<script> 
    $(document).ready(function() { $("#e1").select2(); }); 
</script> 

我的標籤也包含Ajax.ActionLink ...被替換的Div是整個選項卡本身。我知道這是正常工作的,因爲我在所有其他選項卡上使用相同的邏輯。

@Ajax.ActionLink("My Text", "ControllerMethod", new { param = 1 }, new AjaxOptions { InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace, UpdateTargetId = "divToReplace", }) 

我的控制器方法只是構建一個列表,並將其發送回到查看:

public ActionResult ControllerMethod (int param) 
    { 
     Session.Add("paramID", param); 
     IEnumerable<SymbolAndNameDTO> myList = client.GetMyList(); 
     ViewBag.myList = myList; 

     return View(ViewBag); 
    } 

因此,誰能告訴我,爲什麼標籤選項框中正確呈現當標籤被第一次按下但不經過我點擊AjaxAction鏈接?我試圖將腳本移動到我的索引頁面,但我不能讓選項框正確呈現。任何幫助,將不勝感激......我可以提供額外的細節,如果有必要.....

+0

您需要在ajax鏈接成功回調的元素上再次初始化select2 –

回答

1

我正在兩次引用JQuery ...一旦在索引頁上,然後再次呈現的視圖..愚蠢的愚蠢。謝謝。

相關問題