繁体   English   中英

运行时生成的控件已为异步回发asp.net禁用

[英]Runtime generated controls disabled for Async Postback asp.net

我想在运行时创建一些不能击中“异步回发”的项目。

实际上,我的网格视图中的每一行都有一个按钮。 该控件不能生成部分回发,而可以生成完整的回发(因为结果必须是报告的下载)。

实际上,我尝试了2种方式:

  1. 页面加载

    • 递归搜索作为Button并具有指定类的每个控件
    • 通过以下方式将该项目添加到ScriptManager中:

      ScriptManager.GetCurrent(本).RegisterPostBackControl(对照);

    • 该代码被打了正确的时间,但是仍然生成了部分回发

  2. 关于项目生成

    • 我将“ OnDataBinding”事件添加到按钮生成中
    • 在这种情况下,我会执行以下操作:

      var button =(Control)sender;

      ScriptManager.GetCurrent(本).RegisterPostBackControl(按钮);

为什么这不起作用?

在这两种情况下,我都碰到了特定情况,并将控件“注册”为“完全回发”,那么我该如何获得部分回发?

谢谢

我不知道您所说的部分回发是什么意思,但是我想您正在尝试在按钮单击事件中执行某些操作,该事件要在页面加载后发生。 有一个快速的解决方法,在pageload事件中,您可以检查单击了哪个按钮。

if(IsPostBack){
    clickedButtonID=Request.Form["__EVENTTARGET"]; 
}

我找到了一个可行的解决方案,并且不涉及任何特定的代码/替代。

我当时只专注于“自动生成”按钮,但是当我开始考虑区域和父母时,一切都很好。

作为解决方案,我只需将WHOLE GridView注册到脚本管理器,通过这种方式,内部的所有控制器都会生成完整的回发而不是部分回发。

在我的Page_Load中,我现在有:

        ScriptManager.GetCurrent().RegisterPostBackControl(grd_Reports);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM