我有一个带有 DropDownList 的 UpdatePanel。在 UpdatePanel 中,我向 PlaceHolder 添加了一些自定义控件,其中有一个带有OnClick="AddItemToCart"
. 如果我刷新我的页面并按下该AddItemToCart
事件被调用的按钮,如果我将 DropDownList 更改为与页面一起加载的默认值以外的其他值,则该AddItemToCart
事件不会触发。我能够将 DropDownList 更改回默认值,它将允许事件再次触发。
我认为这与事件注册有关,但我不确定在哪里看。我已经尝试以编程方式将 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()