当前位置: 首页 > 面试题库 >

Updatepanel提供完整的回发而不是asyncpostback

郭元明
2023-03-14
问题内容

我遇到了一个似乎很著名的问题:我的updatepanel触发了完整的回发而不是异步的回发。正常的解决方案是给您动态添加的所有控件一个ID,这已经完成了,但是我仍然得到完整的回发而不是异步回发…

这是代码:

HTML:

<asp:UpdatePanel ID="ItemsUpdatePanel" runat="server" UpdateMode="Condithtml" target="_blank">ional" 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代码。

非常感谢。拉尔斯


问题答案:

从AsyncPostBackTrigger文档中:

不支持以编程方式添加AsyncPostBackTrigger控件。
若要以编程方式注册回发控件,请使用ScriptManager控件的
RegisterAsyncPostBackControl方法。然后,
当控件回发时,调用UpdatePanel控件的Update方法。




 类似资料:
  • 问题内容: 我有一个更新面板,在更新面板中有fileupload控件和按钮控件,单击按钮时,我需要在updatepanel的fileupload控件中上传的文件。 确切的情况是,我在页面上有8个选项卡,每个选项卡包含太多信息,其中一个选项卡是附件,当用户单击显示的“添加新附件模态弹出窗口”时,模态在Updatepanel中包含detailsview,在detailsview中我有文件上传控件,当用

  • 问题内容: 我在UpdatePanel的ListView中有一个LinkBut​​ton。我希望按钮(好吧,其中的任何一个)引起部分回发,但它们却引起整个页面的回发。 我在stackoverflow上发现了另一条建议添加此内容的帖子: 没什么不同… 也有一些其他类似的帖子,但是我找不到解决方案!有任何想法吗? 问题答案: ASP.NET 4中的ClientIDMode设置使您可以指定ASP.NET

  • 问题内容: 有没有一种方法可以确定是否执行了Ajax回发,类似于我们的使用方式… …以确定是否正在执行按钮提交的回发。 我正在尝试检测来自jQuery的Ajax请求,但它也接收了我想排除的UpdatePanel请求,例如… 问题答案: 我不知道这是否会比您的解决方案更好,但是您是否尝试过?

  • 我从1.8升级了nginx。0到1.9。今天7点,为了让一个网站重新工作,他不得不换几行。现在它可以在ssl(443)上工作,但不能在http(80)上工作。我必须将fastcgi_参数更改为fastcgi。形态。 当我通过Cloud flare尝试一个网站时,它说与我的服务器没有连接。直接连接我得到一个下载的文件。看起来像一个压缩文件,在浏览器上没有得到解压缩。这是标题。 浏览器或服务器上没有错

  • 期望的功能:对于给定的密钥key123,许多服务并行运行,并将其结果报告给单个位置,一旦为key123收集了所有结果,就会将其传递给新的下游消费者。 最初的想法:使用AWS DynamoDB保存给定条目的所有结果。每次结果准备就绪时,微服务都会对key123上的数据库执行PATCH操作。输出流检查每个UPDATE以查看条目是否完整,如果是,则将其转发到下游。 新想法:使用Kafka Streams

  • 当我使用Guzzle发送请求时,它会返回一条完整的错误消息,而不会解析内部的JSON。下面是它的外观: “”“ 客户端错误: 导致 响应:\n {\r\n ”错误“: [\r\n ”潜在客户已在此市场活动中“\r\n ]\r\n }\n ”“” 当我通过Postman发送相同的请求时,它确实会返回正确解析的响应消息。 我如何才能让Guzzle只返回消息,而不是完整的响应?