2015-04-25 87 views
1

我有一个母版页。在母版页中,我有一个用于页脚的UserControl。在页脚中,我有一个不会触发OnClick的按钮。在调试过程中,我看到OnClick调用的函数btnSignup_Click没有受到影响。我似乎无法弄清楚我的代码中的错误在哪里。
另外我想说明验证功能是否正常工作。单击按钮时,OnClick不会触发UserControl

master.master

<%@ Master Language="C#" AutoEventWireup="true" Inherits="master" Codebehind="master.master.cs" %> 
<%@ Register TagPrefix="xyz" TagName="Footer" Src="~/controls/footer.ascx" %> 


<xyz:Footer ID="Footer" runat="server" /> 

footer.ascx

<%@ Control Language="C#" AutoEventWireup="true" Inherits="footer" Codebehind="footer.ascx.cs" %> 

<div> 
    <asp:TextBox ID="fName" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidatorfName" ValidationGroup="validationSignup" Display="Static" ControlToValidate="fName" ErrorMessage="First Name required" runat="server"></asp:RequiredFieldValidator> 
</div> 

<div class="button"> 
    <asp:Button ID="btnSignup" CommandName="Button" runat="server" ValidationGroup="validationSignup" Text="Signup" HeaderText="Please fill in all required fields before continuing." OnClick="btnSignup_Click"/> 
</div> 

<div class="validationSummary">     
    <asp:ValidationSummary ID="ValidationSummary" ValidationGroup="validationSignup" runat="server"></asp:ValidationSummary> 
</div> 

footer.ascx.cs

public partial class templates_site_footer : BaseUserControl 
{  
    protected void Page_Load(object sender, EventArgs e) 
    { 
     btnSignup.Click += new EventHandler(btnSignup_Click); 
    } 
    protected void btnSignup_Click(object sender, EventArgs e) 
    {  
     if (!Page.IsValid) 
      return; 

     // code to execute after button is clicked 
    } 
} 
+0

做你检查代码是否被击中条件在方法或不(是它击中'如果(Page.IsValid)'!) –

+0

这是不如果在调试过程中击中(!Page.IsValid)。验证的作用是,如果该字段为空,按钮将不会提交。 – user2127521

+0

尝试公共无效btnSignup_Click(对象发件人,EventArgs e) – Aizen

回答

0

取下Page_Load事件btnSignup.Click += new EventHandler(btnSignup_Click);代码,您已经分配OnClick事件按钮.ASCX标记,并且不需要检查页面的验证再次在btnSignup_Click中,您可以直接编写您想要执行的按钮点击事件代码。

页脚用户控件代码隐藏:

protected void Page_Load(object sender, EventArgs e) 
{ 
    //btnSignup.Click += new EventHandler(btnSignup_Click); 
} 

protected void btnSignup_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     // code to execute after button is clicked 
    } 
    else 
    { 
     // Your page does not validated. 
    } 
} 
+0

调试过程中btnSignup_Click()仍然没有触发。 – user2127521

+0

您是否在web配置文件中设置了debug =“true”? – Keval

+0

是的,我将断点添加到Page_Load()中,并且它们正在被击中。然而,我只注意到btnSignup.Click + =新的EventHandler(btnSignup_Click)没有得到在其断点 – user2127521

相关问题