asp.net - UpdatePanel 与 ASP.NET Repeater 和 Checkbox 同步回发问题

标签 asp.net asynchronous updatepanel

我这里有一个相当烦人的问题

我无法触发我的 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)
{ }

上面的代码有效。我认为您可能在每次回发时重新绑定(bind)转发器 - 我通过删除 Page_Load() 中的“if (!IsPostBack)”语句对此进行了测试,并且我能够重现您描述的有问题的行为。

如果可能,应避免在每次回发时重新绑定(bind)控件。填充控件后,它的数据将由 ViewState 处理,因此除非数据发生更改,否则您可能不应该一直重新绑定(bind)它。

关于asp.net - UpdatePanel 与 ASP.NET Repeater 和 Checkbox 同步回发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/788999/

相关文章:

c# - Paypal 按钮格式不正确的项目金额

javascript - updatepanel (JavaScript) 回发后,jQuery 可排序不起作用

c# - 从 ASP.NET MVC 中的表单发布到另一个模型

asp.net - 如何在循环中获取GridViewRow中记录的ID?

javascript - 如何使用 jquery/javascript 捕获页面上的所有回发?

javascript - 使用异步执行上下文为 Office.js Javascript Word 加载项添加子例程

javascript - 让代码等待 AJAX 请求完成

javascript - 多个异步调用回调

asp.net - 是否有理由更喜欢 jQuery.Ajax 而不是 asp.net UpdatePanel?

c# - 如何使 UpdatePanel 忽略单击其中的一个按钮?