9

我在更新面板内放置了一个用户控件,即像这样。

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

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

有没有办法为此按钮进行回发。

4

3 回答 3

16

从 HTML 中删除并将其<Triggers>添加到PageLoad事件

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

注意:从这里学到的

于 2012-05-14T06:39:16.933 回答
0

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

Dim btn As Button = CType(UserControl.FindControl("ButtonID"), Button)        
AjaxControlToolkit.ToolkitScriptManager.GetCurrent(Page).RegisterPostBackControl(btn)
于 2014-08-07T05:08:41.750 回答
0

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

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

var ClickButton= ctlTest.FindControl("clickButton") as Button;


var trigger = new PostBackTrigger();
trigger.ControlID = ClickButton.UniqueID.ToString();
testupdatepnl.Triggers.Add(trigger);

有关更多详细信息,请参阅以下线程 使用 LoginView 触发 UpdatePanel 内的按钮

于 2012-05-14T06:19:20.923 回答