我有一個DropDownList的UpdatePanel。在UpdatePanel中,我將一些自定義控件添加到一個PlaceHolder,該按鈕的按鈕位於OnClick="AddItemToCart"
。如果我刷新頁面並按下按鈕,則調用AddItemToCart
事件,如果將DropDownList更改爲頁面加載的默認值以外的值,則AddItemToCart
事件不會觸發。我可以將DropDownList更改回默認值,並允許事件再次觸發。按鈕onClick事件不會觸發後AJAX回發,但回發仍然發生
我認爲這是事件註冊的事情,但我不確定在哪裏看。我試圖通過編程方式將OnClick值分配給每個回發中的按鈕,但似乎不起作用。我不明白髮生了什麼問題,因爲回發正在運行,但是我的事件沒有被觸發。總之,如果下拉值與頁面加載時加載的值不同,我的OnClick不會在ajax回發後觸發。
這是我的代碼(雖然我不知道它會幫助):
<asp:UpdatePanel ID="updSIListCnt" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList id="ddlSort" runat="server" OnSelectedIndexChanged="ApplyFilters" AutoPostBack="True" Width="23%">
<asp:ListItem Value="0">Sort By Relevancy</asp:listitem>
<asp:ListItem Value="1">Sort By Product Code</asp:listitem>
<asp:ListItem Value="2">Sort By Product Description</asp:listitem>
<asp:ListItem Value="3">Sort By Price - Lowest</asp:listitem>
<asp:ListItem Value="4">Sort By Price - Highest</asp:listitem>
</asp:DropDownList>
<asp:PlaceHolder id="phContentListCnt" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="upSIList" runat="server" AssociatedUpdatePanelID="updSIListCnt">
<ProgressTemplate>
<asp:Image id="imgLoading" runat="server" ImageUrl="~/Images/loading.gif" CssClass="loader" />
</ProgressTemplate>
</asp:UpdateProgress>
phContentListCnt
包含的幾個實例:
<asp:ImageButton ID="btnAddToBasket" runat="server" ImageUrl="~/Images/Buttons/add_to_basket.jpg" OnClick="AddItemToCart" CausesValidation="false" />
ApplyFilters
運行一些SQL,並呼籲UpdatePanel.Refresh()