我只是想知道是否有办法将我的onClick事件放在.cs:
中<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">
其中Login_Click()应该在.cs:
中protected void btnLogin_Click(object sender, EventArgs e)
{
// do something
}
请注意我不会在这里使用ASP.NET按钮,并且我不会将我的Login_Click()事件放在.html / .aspx中,所以我不能'公开'我的代码。有什么建议吗?
答案 0 :(得分:33)
您可以在任何服务器控件上执行此操作,并通过定义“runat=server
”使此按钮成为服务器控件。问题可能在于您对事件的定义:
<button ... runat="server" ... onServerClick="btnLogin_Click" />
你不需要“();
”......
除此之外,你可以解释为什么你不在这里使用<asp:Button>
因为我真的没有看到这个问题......
答案 1 :(得分:17)
您需要使用onServerClick。有一个如何在MSDN上执行此操作的示例:
<button id="Button1" OnServerClick="Button1_OnClick" runat="server">
Click me!
</button>
protected void Button1_OnClick(object Source, EventArgs e) {
// secret codes go here
}
答案 2 :(得分:5)
btnLogin.Click += new EventHandler( btnLogin_Click );
会将btnLogin_Click事件处理程序分配给按钮的Click事件。
但是,我要指出在aspx页面的标记中分配处理程序不会“暴露你的代码”,因为呈现给客户端的HTML中没有任何信息。
答案 3 :(得分:0)
I know it's late but i lost so much time on this problem. I was setting InnerHtml of a div with buttons. You need to add type="submit" to your button if you want it to work.
答案 4 :(得分:0)
现在已经很晚了但对于那里的人:申请UseSubmitBehavior="False"
。实施例
<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">