簡體   English   中英

中繼器ItemCommand事件未觸發

[英]Repeater ItemCommand event not firing

我希望當用戶單擊具有session_box類的Panel ,觸發單擊事件。 但是當我單擊它時,什么也沒有發生。 當我調試代碼時, ItemCommand事件甚至都沒有被調用!

這是我的代碼:

HTML:

<div id="sessions_wrapper">
    <asp:Repeater ID="sessions_repeater" runat="server" 
        DataSourceID="SqlDataSource1" 
        onitemcommand="sessions_repeater_ItemCommand">
        <ItemTemplate>
            <asp:Panel CssClass="session_box" runat="server" data-session-id='<%# Eval("session_id") %>'>
                <asp:Image CssClass="session_icon" runat="server" ImageUrl='<%# Eval("session_cover") %>' alt="" />
                <div class="session_info">
                    <p>Title: <%# Eval("session_name") %></p>
                    <p>Date: <%# Eval("session_date") %></p>
                    <p>Photos: <%# Eval("session_photos") %></p>
                </div>
            </asp:Panel>
        </ItemTemplate>
    </asp:Repeater>                            
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:DBCS %>" 
        ProviderName="<%$ ConnectionStrings:DBCS.ProviderName %>" 
        SelectCommand="SELECT * FROM [sessions]"></asp:SqlDataSource>
</div>

C# :

protected void sessions_repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    string sid = ((Panel)e.CommandSource).Attributes["data-session-id"];
    Response.Redirect("sessions.aspx?sid=" + sid);
}

大編輯:我認為一種更簡單的方法是添加一個ImageButton而不是您的Image控件。 它具有兩個屬性,CommandName和CommandArgument。 您可以使用這些參數將參數傳遞給后面的代碼,而無需進行任何強制轉換。

這是因為面板不引發Command事件。 Button,ImageButton,LinkBut​​ton等控件引發此事件。

您可能需要重新考慮UI布局,以包括某種引發Command事件的按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM