为什么双击我的Visual Studio中的HTML按钮不能创建事件处理程序?

时间:2019-05-20 03:19:18

标签: c# html css .net visual-studio-2015

我已使用HTML将按钮添加到Visual 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>

`

我当时想如果我双击按钮。它将自动打开事件处理程序并创建事件处理程序。如果我错了。请纠正我,让我知道。只是来这里是因为我没有想法。

3 个答案:

答案 0 :(得分:0)

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

Response.redirect("ex.aspx");

ex.aspx是您的文件名

如果它不起作用,则添加:

Server.Transfer("ex.aspx");

答案 1 :(得分:0)

VS不会对非ASP标签执行此操作,但是如果您改为:

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

代替

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

然后您将获得该功能

答案 2 :(得分:0)

至于

  

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

是的,这是正常的,因为该按钮是带有HTML的{​​{1}} input[type="submit"]而不是像runat="server这样的asp.net包装的按钮。因此,<asp:button>不会对其进行编译。

为什么在HTML按钮上使用Asp.net?如果您确实希望调用服务器端事件,请使用runat="server"这样,您将可以在双击按钮时创建<asp:Button>

但是如果您仍然坚持使用它,则必须使用3种方式将click-event事件处理程序附加到click按钮上。

  

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

HTML

现在只需在按钮上添加一个//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"页面的pageload事件上附加事件处理程序

aspx.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" /> 中的输入event handler手动创建button[runat="server"],并将其附加到<yourPage>aspx.cs按钮上。