当双击时,为什么我的HTML按钮在Visual Studio中不会创建事件处理程序



我使用html中的Web Studio 2015中的Web表单中添加了按钮。因此这些按钮在"设计"选项卡中。当我双击"设计"选项卡中的按钮时。它没有打开ASPX.CS页面。那是正常的吗?我的印象是我会那样工作。相反,我必须去手动编码每个事件处理程序。

我已经搜索了Google,并试图在Visual Studio上进行维修,但没有发现。

<%@ Page Language="C#" AutoEventWireup="true" 
CodeBehind="WebForm1.aspx.cs" Inherits="Module2LabExercise.WebForm1" %>
<!DOCTYPE html> 
<html>  
    <head>    
    <title> 
        Currency Converter
    </title>  
</head>  
<body>    
    <form runat = "server">      
        <div>        
            Convert: &nbsp;        
            <input type = "text" ID = "US" runat = "server" />        
            &nbsp; U.S. dollars to &nbsp;        
            <select ID = "Currency" runat = "server" />        
            <br /> <br />       
            <input type = "submit" value = "OK" ID = "Convert" 
OnServerClick = "Convert_ServerClick" runat = "server" />  
            <input type = "submit" value = "Show Graph" ID = "ShowGraph" 
OnServerClick = "ShowGraph_ServerClick" runat = "server" />      
            <br /> <br />          
            <img id="Graph" runat="server" src="//:0"/>
            <br /> <br />        
            <p style = "font-weight: bold" ID = "Result" runat = "server" 
>
            </p>  
        </div>    
   </form>  
    </body> 
</html>

`

我在想,如果我双击按钮。它将自动打开活动处理程序并创建活动处理程序。如果我错了。请纠正我,让我知道。只是因为我是出于想法而来这里。

您在按钮实现的后端添加该代码:这是代码

Response.redirect("ex.aspx");

ex.aspx是您的文件名

如果不起作用,请添加:

Server.Transfer("ex.aspx");

vs vs不会为non-asp标签执行此操作,但是如果您放置:

<asp:Button ID="Convert"  runat="server" />

而不是

<input type = "submit" ID = "Convert" runat = "server" />  

然后您将获得该功能

at

它没有打开ASPX.CS页面。那是正常的吗?

是的,它是正常的,因为该按钮是带有runat="serverHTML input[type="submit"],而不是asp.net包装按钮,例如:<asp:button>。因此,它不是由Asp.net进行的。

为什么在HTML按钮上使用runat="server"?如果您真的希望称为服务器端事件,则使用<asp:Button>,以便在双击按钮上创建click-event

但是,如果您仍然坚持使用它,则必须将click事件处理程序附加到HTML按钮。

aspx 设计师页面中的事件处理程序。

//attach a script tag to your aspx page and add the click event to it.
<script language="C#" runat="server"> 
    protected void Convert_ServerClick_manual1(object sender, EventArgs e)
    {
        //your code here
    }
</script>

现在只需将onserverclick="Convert_ServerClick_manual1"添加到按钮。

pageloadaspx.cs页面上附加事件处理程序

protected void Page_Load(object sender, EventArgs e)
{
    Convert.Click += Convert_ServerClick_manual2;
}

现在在pageload事件下方定义事件处理程序:

private void Convert_ServerClick_manual2(object sender, EventArgs e)
{
    //your code here
}

手动事件处理程序

//just create the event handler for your button on the `aspx.cs` page and paste the handler name to the `HTML` button.
private void Convert_ServerClick_Manual3(object sender, EventArgs e)
{
    //your code here
}

然后在您的设计页面中使用:

<input type = "submit" value = "OK" ID = "Convert" OnServerClick = "Convert_ServerClick_manual3" runat = "server" /> 

<yourPage>aspx.cs中的输入button[runat="server"]手动创建event handler,并将其连接到HTML按钮。

最新更新