簡體   English   中英

UpdatePanel與ASP.NET Repeater和Checkbox Aync回發問題

[英]UpdatePanel with ASP.NET Repeater and Checkbox Aync Postback issue

我這里有一個很煩人的問題

我無法觸發我的CheckBox CheckedChange事件,或者捕獲它或發生任何失敗的事件:

ASPX代碼

<asp:UpdatePanel runat="server" ID="udp_Lists" UpdateMode="Always">
<ContentTemplate>
    <asp:Repeater ID="rep_showings" runat="server">
        <HeaderTemplate>
        </HeaderTemplate>
        <ItemTemplate>
            <div class="div_assignment">
                <div class="div_assignment_text">
                    <asp:LinkButton runat="server" ID="lnk_show_task" OnClick="lnk_show_task_Click" CommandArgument='<%# Eval("Id") %>' Text='<%# Eval("TaskTitle") %>'></asp:LinkButton>
                </div>
                <div class="div_assignment_checkbox">
                    <asp:CheckBox runat="server" ID="chk_handle" AutoPostBack="true" OnCheckedChanged="chk_handle_Changed" ToolTip='<%# Eval("Id") %>' />
                </div>
            </div>
        </ItemTemplate>
        <FooterTemplate>
        </FooterTemplate>
    </asp:Repeater>
</ContentTemplate>
<Triggers>
</Triggers>

函數"chk_handle_Changed"后面的代碼永遠不會到達。 Linkbutten完美運行。

我看了你的問題。 我使用以下代碼:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.rep_showings.DataSource = new object[] { new { Title = "title", ID = "id" } };
        this.rep_showings.DataBind();
    }
}

protected void chk_handle_Changed(object source, EventArgs e)
{
    Trace.Write("here");
}

protected void lnk_show_task_Click(object source, EventArgs e)
{
    Trace.Write("here 2");
}

protected void rep_showings_ItemCommand(object source, RepeaterCommandEventArgs e)
{ }

上面的代碼有效。 我認為您可能在每個回發上都重新綁定了轉發器-我通過刪除Page_Load()中的“ if(!IsPostBack)”語句對它進行了測試,並且能夠重現您描述的有問題的行為。

如果可能,應避免在每個回發上重新綁定控件。 填充控件后,ViewState會處理它的數據,因此,除非數據發生更改,否則您不應該一直重新綁定它。

暫無
暫無

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

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