c# - Updatepanel 提供完整的回发而不是异步回发

标签 c# asp.net ajax updatepanel postback

我遇到了一个似乎非常有名的问题:我的更新面板触发了完整的回发而不是异步回发。正常的解决方案是为您动态添加的所有控件提供一个 ID,我已经这样做了,但我仍然得到一个完整的回发而不是我的异步回发......

代码如下:

HTML:

<asp:UpdatePanel ID="ItemsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
   <Triggers>
   </Triggers>    
   <ContentTemplate>
   <asp:ListView ID="PlayerItems" runat="server" GroupItemCount="5" 
                                    onitemdatabound="PlayerItems_ItemDataBound">
   <LayoutTemplate>

   ... Listview stuff ...

    </asp:ListView> 

    </ContentTemplate>
</asp:UpdatePanel>

有趣的部分是后面的C#代码(方法PlayerItems_ItemDataBound),就像下面这样:

            ImageButton imgBtn = new ImageButton();
            imgBtn.ID = "itemBtn";
            imgBtn.Width = Unit.Pixel(30);
            imgBtn.ImageUrl = "~/Images/Game/Items/" + myItem.ItemImageUrl;

            ContextMenu menu = new ContextMenu();
            menu.BoundControls.Add(imgBtn);
            menu.ItemCommand += new CommandEventHandler(menu_ItemCommand);

            menu.AutoHide = true;
            menu.RolloverColor = Color.Gray;
            menu.ID = "MenuMenu";

            Panel panel = (Panel)(e.Item.FindControl("ItemPanel"));
            panel.Controls.Add(imgBtn);
            panel.Controls.Add(menu);

            AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
            trig.ControlID = menu.UniqueID;
            trig.EventName = "ItemCommand";
            ItemsUpdatePanel.Triggers.Add(trig);

因此,我实际上向菜单添加了一个 AsyncPostBackTrigger,因此应该注册 ItemCommand 事件。当我单击此上下文菜单中的某个项目时发生的事情是完整的回发事件。

我一直在尝试在没有帮助的情况下使用 ChildrenAsTriggers 属性。我也一直在上下移动 AsyncPostBackTrigger 代码,同样没有帮助。

非常感谢..! 拉斯

最佳答案

在 UpdatePanel 的面板内的 ListView 内填充 CheckBoxList 时,我有同样的经历。通过在 CheckBoxList 中添加此代码解决了这个问题:

ClientIDMode="AutoID" 

关于c# - Updatepanel 提供完整的回发而不是异步回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319156/

相关文章:

c# - 我可以依赖使用 Web API 的 CallContext 吗?

javascript - 将 ajax 响应分配给全局变量

c# - 处理加载和显示数据之间的异常

c# - 在 C# 中的 csv 文件中写入法语字符

c# - 如何在 C# 中使用 PBKDF2 HMAC SHA-256 或 SHA-512 使用 salt 和迭代对密码进行哈希处理?

javascript - Rails Acts_as_votable ajax/js upvoting 所有帖子而不是一个

javascript - Firefox 不会设置通过 XHR CORS 请求收到的 Cookie

c# - Log4net 不写入日志文件

c# - 过于简洁的泛型类型的快捷方式

asp.net - 在 MVC4 RTM 中从 ASP.NET Membership 迁移到 SimpleMembership