簡體   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