DropDownList を持つ UpdatePanel があります。UpdatePanel 内で、いくつかのカスタム コントロールを PlaceHolder に追加していますOnClick="AddItemToCart"
。ページを更新してボタンを押すと、AddItemToCart
イベントが呼び出されます。DropDownList をページに読み込まれたデフォルト値以外に変更すると、AddItemToCart
イベントは発生しません。DropDownList をデフォルト値に戻すことができ、イベントが再びトリガーされるようになります。
これはイベント登録に関するものだと思いますが、どこを見ればよいかわかりません。OnClick 値を各ポストバックのボタンにプログラムで割り当てようとしましたが、うまくいかないようです。ポストバックが機能しているため、何が問題なのかわかりませんが、イベントはトリガーされません。
要約すると、ドロップダウン値がページの読み込み時に読み込まれた値と異なる場合、ajax ポストバック後に OnClick が起動しません。
これは私のコードです(役立つかどうかはわかりませんが):
<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()