手动触发更新面板

时间:2013-05-03 14:59:23

标签: c# asp.net web updatepanel

我在页面中有一个UpdatePanel。 在这个UpdatePanel里面,我有一个带按钮的控件。 是否可以在后面的代码中为此按钮(位于用户控件内)手动添加回发触发器?

以下是示例代码

//Page
<UpdatePanel>
  <uc1:UserControl />
</UpdatePanel>

//UserControl
<textbox></textbox>
<asp:button></asp:Button>

1 个答案:

答案 0 :(得分:0)

据我所知,您希望在用户控件中注册按钮,作为包含用户控件的 ASPX 页面中UpdatePanel的PostbackTrigger。 我已经设法编写了一个简单的Web应用程序来复制这个场景,没有进一步的信息,我无法看到你出错的地方或者你得到的错误是什么,如果有的话。如果您扩展原始问题,这将有所帮助,例如:通过提供代码的相关代码段。我会尽我所能......

在用户控件中,您可以使用以下代码将按钮注册为更新面板的回发触发器:

    public void RegisterPostbackTrigger(UpdatePanel updatePanel)
    {
        PostBackTrigger buttonTrigger = new PostBackTrigger();
        buttonTrigger.ControlID = TestButton.ClientID;
        updatePanel.Triggers.Add(buttonTrigger);
    }

然后,您必须在您的页面代码中调用RegisterPostbackTrigger,然后将UpdatePanel的引用作为参数传递。 MyControl引用UserControl

    MyControl.RegisterPostbackTrigger(MainUpdatePanel);

执行此操作的另一种方法(可能与您的特定问题相关)是直接访问ScriptManager并使用其RegisterPostBackControl方法传入按钮作为参数。这是a link

如果没有更多信息,就无法真正帮到你了!

祝你好运!