asp:Button - onclick 事件在不同的代码隐藏上触发代码?
asp:Button - onclick event fires code on a different code-behind?
我正在自学使用 site.master 页面,其中嵌入了使用 ContentPlaceHolderID 对象的子网络表单。我正在弄清楚,但我有一个问题;是否可以在 site.master 页面上放置一个按钮来触发子表单代码隐藏页面上的代码?如果我能做到这一点,那将真正简化我想要完成的工作。
我尝试 'inherit' 两个代码隐藏,但当然没有用。有办法吗?
是的,有办法做到这一点。您需要将 UseSubmitBehavior
按钮 属性 设置为 false
然后您可以使用 Request.Params.Get("__EVENTTARGET");
访问导致 post 返回的控件所以代码看起来像这样:
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!
}
}
}
我正在自学使用 site.master 页面,其中嵌入了使用 ContentPlaceHolderID 对象的子网络表单。我正在弄清楚,但我有一个问题;是否可以在 site.master 页面上放置一个按钮来触发子表单代码隐藏页面上的代码?如果我能做到这一点,那将真正简化我想要完成的工作。
我尝试 'inherit' 两个代码隐藏,但当然没有用。有办法吗?
是的,有办法做到这一点。您需要将 UseSubmitBehavior
按钮 属性 设置为 false
然后您可以使用 Request.Params.Get("__EVENTTARGET");
访问导致 post 返回的控件所以代码看起来像这样:
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!
}
}
}