簡體   English   中英

為什么雙擊時Visual Studio中的HTML按鈕不會創建事件處理程序?

[英]Why are my HTML buttons in Visual Studio not creating Event Handlers when double clicked?

我使用HTML在Visual Studio 2015中將按鈕添加到Web表單中。 所以這些按鈕位於設計選項卡中。 當我雙擊設計選項卡中的按鈕時。 它沒有打開ASPX.CS頁面。 這是正常的嗎? 我的印象是我會像那樣工作。 相反,我必須去手動編碼每個事件處理程序。

我搜索了谷歌,並嘗試在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不會為非ASP標簽執行此操作,但如果您改為:

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

代替

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

然后你就會得到這個功能

至於

它沒有打開ASPX.CS頁面。 這是正常的嗎?

是的,這是正常的,因為按鈕是一個HTML input[type="submit"]其中runat="server而不是asp.net包裝按鈕,如: <asp:button> 。因此它不會被Asp.net

為什么你在HTML按鈕上使用runat="server" 如果您真的想要調用服務器端事件,請使用<asp:Button> ,這樣您就可以在雙擊按鈕時創建click-event

但是如果你仍然堅持使用它,你必須有3種方法將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" attrubute。

在附加的事件處理程序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" /> 

手動為<yourPage>aspx.cs的輸入button[runat="server"]創建一個event handler ,並將其附加到HTML按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM