【发布时间】:2011-02-24 18:53:30
【问题描述】:
我有一个母版页,在该母版页里面是一个用户控件,它有一个带有保存按钮的工具栏。然后我有一个继承自母版页的 aspx 页面。在那个页面我有更新面板。是否可以将回发触发器设置为用户控件内的保存按钮?
【问题讨论】:
标签: c# asp.net user-controls updatepanel master-pages
我有一个母版页,在该母版页里面是一个用户控件,它有一个带有保存按钮的工具栏。然后我有一个继承自母版页的 aspx 页面。在那个页面我有更新面板。是否可以将回发触发器设置为用户控件内的保存按钮?
【问题讨论】:
标签: c# asp.net user-controls updatepanel master-pages
您应该能够在内容页面中使用Master.FindControl("MySaveButton"),并将其附加到脚本管理器的触发器列表中:
this.MyScriptManager.RegisterAsynchPostBackControl(Master.FindControl("MySaveButton"))
除非我没有正确理解问题。
【讨论】:
检查第四个帖子(标记为答案)here,它应该会有所帮助。
简而言之,创建一个PostBackTrigger 实例,适当设置字段,然后添加到UpdatePanel 的Triggers 集合中。
例如(来自链接网站):
//Creates a new async trigger
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
//Sets the control that will trigger a post-back on the UpdatePanel
trigger.ControlID = "btnCommit";
//Sets the event name of the control
trigger.EventName = "Click";
//Adds the trigger to the UpdatePanels' triggers collection
pnlMain.Triggers.Add(trigger);
【讨论】:
我采用了不同的方法来查找我的控件。我使用了this 方法。我过去用过这个,不知道为什么我没有早点考虑过。在我的用户控件中,我将控件公开为属性。在我的母版页中,我创建了一个允许我获取用户控件实例的属性。在我的页面中,我可以称之为:Master.UserControlName.PropertyInControl
因此,如果我在用户控件中公开一个按钮或控件,我应该能够将其添加到触发器集合中。
【讨论】: