是否可以为将在服务器而不是 javascript 块中运行的基本 html 按钮元素编写 asp.net 事件处理程序函

本文关键字:按钮 元素 html 程序 事件处理 net asp 运行 服务器 javascript 是否 | 更新日期: 2023-09-27 18:36:02

实际上我不需要它。但是我脑子里有一点好奇心,因为我没有调用为在服务器中运行而编写的事件处理程序函数。我拖动了一个 html 按钮元素并将其放入属性 runat="server" 的表单元素中

现在,如果我双击设计视图中的按钮,它会将我重定向到创建事件处理程序函数的 javascript 块。我删除了它并在代码隐藏文件中编写了自己的代码。现在,当在服务器上运行页面并单击按钮时,不会调用事件处理程序函数。

我希望它运行。无论如何?

是否可以为将在服务器而不是 javascript 块中运行的基本 html 按钮元素编写 asp.net 事件处理程序函

您在两个不同的事件之间混淆了:编辑器中提供的 onclick 是客户端单击事件,由 JavaScript 代码处理。
如果将基于 c# 的服务器端事件处理程序添加到此类按钮中,则使用

runat="server" 

,属性并向其添加服务器端处理程序(假设 Button1 是按钮的 ID)

Button1.ServerClick += new EventHandler(Button1_ServerClick);


HTML 输入的标记不会公开服务器端事件以通过标记添加处理程序,但您可以在 page_load/init 事件中添加我上面粘贴的代码

你的按钮是什么样的? 试试这个:

<button runat="server" ID="myButton" onClick="YourFunction">My Button</button>

ASPX:

<button runat="server" id="htmlButton1" name="htmlButt" onserverclick="butt">
        foo</button>

CS/代码隐藏:

protected void butt(object sender, EventArgs e)
{
    Response.Write("butt clicked!");
}

您必须(手动)编写处理程序 - IDE 不会自动为您神奇地连接它(您可以使用 onserverclick 自己连接它)。