2014-01-17 173 views
0

表单提交按钮的事件背后的代码未执行。背后ASP.NET提交按钮事件未执行

<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation="true" Inherits="_Default" %> 

<form id="form1" runat="server"> 
<input id="Submit1" type="submit" value="Update" runat="server" onclick="btnclick_Click" /> 
<asp:TextBox ID="tbStatus" enableViewState="true" runat="server" TextMode="MultiLine" 
    Width="296px" Height="67px" ReadOnly="True"></asp:TextBox> 
</form> 

代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
      tbStatus.Text = "Status: Page loaded"; 
    } 
} 

protected void btnclick_Click(object sender, EventArgs e) 
{ 
    tbStatus.Text += "\nButton clicked. "; 
} 

的btnclick_Click从未执行。如果我不是改变的Page_Load这样:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
      tbStatus.Text = "Status: Page loaded"; 
    } 
} else { 
     tbStatus.Text += "\nUpdated. (Page_Load PostBack). "; 
} 

然后textarea的更新两次,在第三sudmit我跑进错误消息:

The state information is invalid for this page and might be corrupted. 

我只想按钮提交事件来执行。提前感谢任何有关我做错事情的信息!

+0

为什么不使用服务器控制? –

+0

哦!我不相信我错过了!这实际上也是我的代码,可怕的错误!谢谢! – Plarsen

回答

1

尝试改变,以asp.net按钮

<asp:Button ID="Submit1" runat="server" Text="Update" OnClick="btnClick_Click"/> 

后面的代码:

protected void btnclick_Click(object sender, EventArgs e) 
{ 
    tbStatus.Text += Environment.NewLine + "Button clicked. "; 
} 
+1

谢谢!这个伎俩 – Plarsen

3

我认为你应该使用服务器控件本身调用页面method.If您仍想继续使用HTML input尝试

<input id="Submit1 "runat="server" type="button" onserverclick="btnclick_Click" /> 

更多关于HtmlButton.OnServerClick