【问题标题】:Postbacktrigger control within asyncpostbacktrigger control?asyncpostbacktrigger 控件中的 Postbacktrigger 控件?
【发布时间】:2012-03-06 16:54:31
【问题描述】:

大家好,我们的项目页面之一具有以下结构:

  <asp:UpdatePanel ID="up1" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="tabContainer" EventName="ActiveTabChanged"  />
      </Triggers>

    <ContentTemplate>


        <cc1:TabContainer ID="tabContainer" runat="server" Visible="false" ActiveTabIndex="0" AutoPostBack="true" OnActiveTabChanged="BtnTrigger_Click">
            <cc1:TabPanel ID="tab1" runat="server" HeaderText="tab1">
                <ContentTemplate>
                    <uc:userControlFirst ID="uc1" runat="server"  />
                    <uc:userControlSecond ID="uc2" runat="server"/>                                                  
                </ContentTemplate>
            </cc1:TabPanel>....
       </ContentTemplate>
       </asp:UpdatePanel>

我们希望每次用户更改标签时更新更新面板。问题是,在 uc2 控件中,我们有带有链接按钮的 gridview 来下载报告(.xlsx),并且因为 uc2 在控件内部,它是异步回发触发器,所以每次我们单击链接按钮时,更新面板都会更新而不是整个页面,所以我们无法下载报告。

以前当tabContainer不是asyncpostbacttrigger时,我们可以通过以下方式将gridview注册为回发控件:

ScriptManager.GetCurrent(Page).RegisterPostBackControl(this.gvInsertionHistory);

但不幸的是它停止了工作。

有没有办法将这些链接按钮甚至整个 gridview 或 uc2 注册为回发控件,即使它们在 asyncpostbackcontrol 中?

使用 EventName 属性的原因是什么?它是为ActiveTabChanged 设置的,但每次我们点击 tabContainer 内的东西时都会更新更新面板。

我也尝试在标记中添加 uc2 作为 PostbackTrigger,但看起来这是不可能的/不允许的。将 childrenAsTrigger 设置为 false 也无济于事。

如有任何想法,我将不胜感激。

【问题讨论】:

    标签: c# asp.net ajax triggers updatepanel


    【解决方案1】:

    在深入了解此之前,请尝试使用基于 Querystring 的方法,将下载按钮重写为带有 Queryparamters 的链接 - 而不是回发按钮 - 以导出您的 xlsx。这将始终导致整个页面加载(只要您不使用框架)。生成如下内容:

    <a href="?ID=1&Format=xlsx">download</a>
    

    并在 Page_Load 检查中

    if (Request.Querystring["Format"] == "xlsx")
    {
      //Response.Write(...render xlsx method)
    }
    

    编辑:你甚至可以target="_blank"链接保持当前页面视图不变

    【讨论】:

    • 嗨,它可能会起作用,但我找到了更简单的解决方案。我刚刚在 LinkBut​​ton 上设置了 PostbackUrl="" 并进行了回发,但没有刷新整个页面。我们发现的第二个想法是我们的​​ asyncpostbacttrigger 不是必需的,因为 tabcontainer 在更新面板中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多