2013-10-25 47 views
1

我有一個呈現局部視圖的視圖。 Index.cshtml包含部分視圖。Javascript:選擇頁面上的所有複選框。它檢查所有的一秒鐘,然後消失

在div下面在局部視圖存在

  <div id="sa-da"> 
       <input type="checkbox" id="selectAll"/><span>@T("Select/Deselect all invoices")</span> 
       <div class="payinvoices"><input class="amebtn" id="PayInvoices" type="button" text="Pay Invoices" onclick="RemovePagination();"/> </div> 
      </div> 

我使用下面的方法來關閉分頁上在局部視圖中的網格(的WebGrid)配合使用的按鈕的點擊的

  function RemovePagination() 
       {  
        UpdateGrid("","clkPayInv"); 
        $('#invoicestatus').val('unpaid');    
        SelectAllCheckboxesOnLoad(); 
       } 

我想下面的功能來選擇所有的複選框上的按鈕的點擊以及

   function SelectAllCheckboxesOnLoad() 
      { 
       var aa= document.getElementsByTagName("input"); 
       for (var i =0; i < aa.length; i++){ 
        if (aa[i].type == 'checkbox') 
         aa[i].checked = true; 
       } 

      } 

??點擊按鈕時會勾選複選框,但不會保持選中狀態。 它只是閃爍第二個顯示所有選中的框,然後消失。 我該如何解決這個問題?

  function UpdateGrid(searchString,whatWasClicked) { 
        $jq.ajax({ 
         url: '@Url.Action("Invoices")', 
         type: "GET", 
         cache: false, 
         data: { status: $("#invoicestatus").val(), from: $("#from").val(), thru: $("#to").val(), search: searchString, payInvClickBtn:whatWasClicked}, 
         dataType: "html", 
         global: false, 
         error: function (jqXHR, status, error) { if (jqXHR.status == 401) { window.location.replace(location.href); } } , 
         success: function (result, status, hr) { 
          $('#Grid').html(result); 
         } 
        }); 
       } 

回答

1

問題發生是因爲您觸發檢查/取消選中時,您的ajax調用未完成。 將調用

SelectAllCheckboxesOnLoad(); 

成功的方法中,後

$('#Grid').html(result); 
+0

太謝謝你了。它像魔術一樣工作。 – user2320476