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事件?
謝謝
mmmh,第一個解決方案,拿出在
與該按鈕的選擇試試這個,而不是直接結合,在文檔綁定我的想法:在Page_Load中,使用Page.RegisterClientScriptBlock添加setTracking()腳本,您是否已經嘗試過這種解決方案? – Alessio
你沒有綁定點擊提交按鈕,你將它綁定到窗口對象:$(this).bind('click',..... $(this)[0]是windows對象。 –