更新面板更新一次,并导致回传其他触发器

时间:2019-06-25 19:46:19

标签: c# asp.net updatepanel

我正在动态构建“图像”按钮并将其放置在ASP占位符内。用户单击图像(按钮)时,应使用学校的信息更新面板。第一次单击按钮时,面板会正确更新,但是当我单击另一个按钮时,它将导致回发。在第二,第三等位置上,它应该更新面板而没有回发信息。

构建按钮时,我还创建触发器并将控件ID设置为按钮的ID。我已经调试并验证了这些触发器是否已正确创建。

按钮和触发器创建

 int counter = 0;
        foreach (DataRow row in tempTable.Rows)
        {

            var button = new ImageButton
            {
                ID = counter.ToString(),
                CausesValidation = false
                //OnClientClick= "return false;"


            };
            button.Command += new CommandEventHandler(buildSchoolInfo); //The onclick event that builds the school info
            button.CommandName = "ImageButton" + counter.ToString();
            button.CommandArgument = "Test" + counter.ToString();
            SchoolListPH.Controls.Add(button); //Add image button to placeholder

            AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            trigger.ControlID = button.ID;
            //trigger.EventName = "Click";
            schoolInfoUP.Triggers.Add(trigger); //Adding the trigger to the Update Panel

            counter++;

        }

ASPX代码

 <div style="border: 1px solid black">
    <asp:PlaceHolder ID="SchoolListPH" runat="server"></asp:PlaceHolder>
</div>

<%--    This is the literal that builds with all of the selected schools information --%>
<asp:UpdatePanel ID="schoolInfoUP" runat="server" >

    <ContentTemplate>
        <asp:Literal ID="litTable" runat="server"></asp:Literal>

    </ContentTemplate>


</asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

在互联网上搜索了wayyyy后,很长的一行就为我解决了这一问题。

   ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(button);

在将触发器添加到更新面板之后,我立即放置了它。