我自学使用带有使用ContentPlaceHolderID对象嵌入的子网页的site.master页面。我搞清楚了,但我有一个问题;是否可以在site.master页面上放置一个按钮来触发子窗体的代码隐藏页面上的代码?如果我能做到这一点,它将真正简化我想要完成的事情。
我试图继承'两个代码隐藏,但当然,这是行不通的。有没有办法做到这一点?
答案 0 :(得分:1)
是的,有办法做到这一点。您需要将UseSubmitBehavior
按钮属性设置为false
,然后您可以使用Request.Params.Get("__EVENTTARGET");
访问导致回发的控件,因此代码如下所示:
Site.Master标记中的按钮定义:
<asp:Button ID="MyButton" runat="server" Text="Button" UseSubmitBehavior="false" />
任何继承页面中的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// in case you have code to be executed on first load
}
else
{
string myButtonCtrl = Request.Params.Get("__EVENTTARGET");
if (myButtonCtrl != null && myButtonCtrl.EndsWith("MyButton"))
{
// MyButton has been clicked!
}
}
}