【问题标题】:Postback trigger for button inside a usercontrol in Updatepanel更新面板中用户控件内按钮的回发触发器
【发布时间】:2012-05-21 14:12:05
【问题描述】:

我在更新面板中放置了一个用户控件,例如这样。

<asp:UpdatePanel ID="testupdatepnl" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
                        <uc1:TestControl ID="ctlTest" runat="server" />
        </ContentTemplate>
</asp:UpdatePanel>

现在我在这个用户控件中放置了一个按钮,比如 Click。我想在按钮单击时回发整个页面。 我尝试添加这样的回发触发器

<Triggers>
    <asp:PostBackTrigger ControlID="clickButton" />
</Triggers>

由于按钮位于用户控件内,因此在运行时出现错误。

有没有办法为这个按钮做回发。

【问题讨论】:

  • @Nalaka526:谢谢,我会检查它..
  • @Nalaka526 :但我收到一个错误,例如“在 UpdatePanel 'testupdatepnl' 中找不到触发器的 ID 为 'ctl00$phContent$ctlList$ctlClientLocations$clickButton' 的控件。”
  • 能否请您发送您已修改的代码,即分配控件的 UniqueID 服务器端作为触发器

标签: c# asp.net updatepanel postback ajaxcontroltoolkit


【解决方案1】:

您还应该注意,如果您使用的是 Ajax Control Toolkit。您可以将 ScriptManager 替换为 ToolkitScriptManager。

Dim btn As Button = CType(UserControl.FindControl("ButtonID"), Button)        
AjaxControlToolkit.ToolkitScriptManager.GetCurrent(Page).RegisterPostBackControl(btn)

【讨论】:

    【解决方案2】:

    从 HTML 中删除 &lt;Triggers&gt; 并将其添加到 PageLoad 事件

    ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
    scriptManager.RegisterPostBackControl(WebUserControl11.FindControl("ButtonId")); 
    

    注意:学自this

    【讨论】:

    • 但是我在页面中有另一个按钮,并且想在点击时进行回发,因为我已经在页面中添加了触发器。
    • @mahesh 然后将触发器保留在 html 中,并为 Page Button 提供回发触发器,并在 PageLoad 上为 UserControl Button 添加添加回发触发器。它应该工作......
    • fyi,这对我有用,方法是将此代码放在用户控件本身的 page_load 中,这样您就不必将用户控件特定的代码放在用户控件的使用者中。非常感谢您的提示!
    【解决方案3】:

    因为您用作触发器的按钮被放置在更新面板内,并且在渲染后其客户端 ID 被更改。

    使按钮可从用户控件访问并在服务器端声明触发器,例如

    var ClickButton= ctlTest.FindControl("clickButton") as Button;
    
    
    var trigger = new PostBackTrigger();
    trigger.ControlID = ClickButton.UniqueID.ToString();
    testupdatepnl.Triggers.Add(trigger);
    

    更多详情请参阅以下主题 Trigger a button inside a UpdatePanel with a LoginView

    【讨论】:

    • 你确定你在服务器端使用了ClientButton的UniqueID而不是ClientID吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多