【发布时间】:2012-12-18 15:35:49
【问题描述】:
我有一个带有 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()
【问题讨论】:
标签: asp.net ajax events postback