[英]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:
<input type = "text" ID = "US" runat = "server" />
U.S. dollars to
<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.