2014-02-19 89 views
1

我有一個ASP.NET GridView有一列作爲鏈接 - 推動鏈接觸發JQuery調用並打開一個fancybox。一切工作,直到我把我的代碼在UpdatePaneljquery不能在ASP.NET UpdatePanel中工作

一旦進入UpdatePanel,鏈接不再起作用。如果我將所有內容全部從UpdatePanel中取出,那麼所有工作都會正常工作。

如何讓JQuery識別updatePanel中的GridView鏈接?

  $("a.grid").click(function() { 
      var ID = this.id; 
      $.fancybox({ 
       'scrolling': true, 
       'autoSize': false, 
       'width': 1015, 
       'height': 515, 
       'transitionIn': 'fade', 
       'transitionOut': 'fade', 
       'speedIn': 200, 
       'speedOut': 300, 
       'type': 'iframe', 
       'href': 'general_stats.aspx?ID=' + ID 
      }); 
     }); 

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
CellPadding="4" DataSourceID="SqlDataSourceGenStats1" Font-Size="Smaller" 
ForeColor="#4C98AA" GridLines="None" Width="669px" Visible="False"> 
<AlternatingRowStyle BackColor="White" /> 
<Columns> 
    <asp:BoundField DataField="PERSON_ID" HeaderText="Person ID" 
     SortExpression="PERSON_ID" /> 
    <asp:BoundField DataField="FIRST_NAME" HeaderText="First Name" 
     SortExpression="FIRST_NAME" /> 
    <asp:BoundField DataField="LAST_NAME" HeaderText="Last Name" 
     SortExpression="LAST_NAME" /> 
    <asp:TemplateField HeaderText="View Stats"> 
    <ItemTemplate> 
    <a class="grid" id="<%# Eval("PERSON_ID") %>" href="#">View</a> 
    </ItemTemplate> 
     <ItemStyle HorizontalAlign="Center" /> 
    </asp:TemplateField> 
</Columns> 
<EditRowStyle BackColor="#2461BF" /> 
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
<HeaderStyle BackColor="#4C98AA" Font-Bold="True" ForeColor="White" 
    HorizontalAlign="Left" /> 
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
<RowStyle BackColor="#EFF3FB" /> 
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
<SortedAscendingCellStyle BackColor="#F5F7FB" /> 
<SortedAscendingHeaderStyle BackColor="#6D95E1" /> 
<SortedDescendingCellStyle BackColor="#E9EBEF" /> 
<SortedDescendingHeaderStyle BackColor="#4870BE" /> 

+0

使用Javascript/jQuery代碼將永遠不會被從Ajax響應(你的更新面板)執行。 – Sai

+0

您使用的是標籤嗎? –

回答

2

您可能需要註冊綁定到與PageRequestManager Click事件處理程序調用。更多詳細信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/bb311028(v=vs.100).aspx

事情是這樣的更新面板上面:

jQuery(document).ready(function() { 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(
    function() { 
    $("a.grid").click(function() { 
     var ID = this.id; 
     $.fancybox({ 
      'scrolling': true, 
      'autoSize': false, 
      'width': 1015, 
      'height': 515, 
      'transitionIn': 'fade', 
      'transitionOut': 'fade', 
      'speedIn': 200, 
      'speedOut': 300, 
      'type': 'iframe', 
      'href': 'general_stats.aspx?ID=' + ID 
     }); 
    }); 
    } 
); 
}); 

因爲回傳的,它可能不是一個局部回傳後裝載處理。此調用將在回發和異步回發之後加載處理程序。

+0

我嘗試了兩種解決方案。這對我個人而言是至關重要的......至少在最少的修改中。謝謝! – RST

相關問題