2014-01-28 59 views
0

我正在使用一個asp.net更新面板。在這個更新面板中,我有3個下拉框&「提交」按鈕。使用javascript,我將一個「點擊」事件綁定到提交按鈕,以便捕獲3個下拉列表的值,但是如果我從下拉列表中選擇一個新值,我會執行一個自動回覆以更改其他下拉列表的值。這樣做會迫使我的頁面丟失我的javascript單擊事件。如果我刪除了更新面板,一切正常。任何想法我怎麼能做到這一點?這裏是我的代碼(我提到我global.js文件必須在頁面底部):在updatepanel中丟失javascript click事件

ASPX:

<asp:UpdatePanel ID="updatepanelddlist" runat="server"> 
      <ContentTemplate> 

       <asp:DropDownList ID="ddlCategory" runat="server" AutoPostBack="true" DataTextField="Description" 
         DataValueField="id" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" CssClass="txt sc_dropdown"> 
        </asp:DropDownList> 
        <br/> 
        <asp:DropDownList ID="ddlProduct" runat="server" CssClass="txt sc_dropdown" DataTextField="Description" 
         DataValueField="id" AutoPostBack="true" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged"> 
        </asp:DropDownList> 
       <br/> 
        <asp:DropDownList ID="ddlFormat" runat="server" CssClass="txt sc_dropdown" DataTextField="Description" 
         DataValueField="id" AutoPostBack="true" OnSelectedIndexChanged="ddlFormat_SelectedIndexChanged"> 
        </asp:DropDownList> 
       <br />      
        <asp:LinkButton ID="btnSearch" runat="server" Text="search" 
         OnClick="btnSearch_Click" Style="float: right;" />      
      </ContentTemplate> 
      </asp:UpdatePanel> 
<script type="text/javascript" src='<%=ResolveUrl("~/Scripts/Tracking/global.js") %>'></script> 

這裏是我的global.js文件:

$(document).ready(function() { 
setTracking(); 
}); 

function setTracking() { 
//add a click event 
    $(this).bind('click', function(e) { 
    //do some stuff here 
    }); 
}); 

我該怎麼做才能在updatepanel回發中保留我的javascript click事件?

謝謝

+0

mmmh,第一個解決方案,拿出在

與該按鈕的選擇試試這個,而不是直接結合,在文檔綁定我的想法:在Page_Load中,使用Page.RegisterClientScriptBlock添加setTracking()腳本,您是否已經嘗試過這種解決方案? – Alessio

+0

你沒有綁定點擊提交按鈕,你將它綁定到窗口對象:$(this).bind('click',..... $(this)[0]是windows對象。 –

回答

1

看起來像你的代碼中缺少的東西。你說你綁定了提交按鈕,但$(this)不在該按鈕的上下文中。

無論如何,只有updatePanel中的控件在提交後纔會重新呈現。這在技術上是頁面上的新控件,這就是爲什麼click事件不再受限制的原因。

$(document).on("click", "[id$=btnSearch]", function() { ... }); 

詳細瞭解。對這裏: http://api.jquery.com/on/