本篇介紹 .aspx 檔、後端事件方法中的參數、WebForm的UI相關屬性成員。
*.aspx檔 :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="03.aspx.cs" Inherits="WebControls" %>
<!— CodeFile = 只能有一個對應的CodeBehind.cs檔 Inherits = 與aspx.cs檔內對應的類別名稱(包著Page_Load事件)-->
<!- Language 是可在前端使用混和語法 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title> 按鈕 -- CommandArgument #1</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server"
CommandArgument="哈囉!您剛剛按下的按鈕是[測試(test)]"
Text="Button/測試(test)"
onclick="Button1_Click"
oncommand="Button1_Command" />
</div>
</body>
</html>
對應的 *.aspx.cs檔 :
public partial class WebControls : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{}
protected void Button1_Command(object sender, CommandEventArgs e)
{
Response.Write("<br />2.Command事件 剛剛按下的Button按鈕,其內建的CommandArgument是: ");
Response.Write(e.CommandArgument);
}
//說明每個事件中通常會夾帶兩個參數 : 一個是物件本身 另一個則是依些額外資訊但內容與型態可能會不一樣。
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<br />1.Click事件 您剛剛按下的Button按鈕,其內建的CommandArgument是: ");
Response.Write(e.ToString()+"</br>"); // 此時的 e 就不同屬性
Response.Write(sender.GetType() + "</br>");
Response.Write(sender.ToString() + "</br>");
var ob1 = sender as Button; // 轉型成按鈕型別
ob1.Enabled = false; // 轉型後即可使用原物件內的所有方法屬性
Response.Write(ob1.ID + "</br>");
Response.Write(ob1.GetType() + "</br>");
}
}
說明 :
- 事件方法 protected void obEvent(object sender, EventArgs e) {.....} :
- sender : 代表觸發該事件的物件(UI)本身。
e : WebForm會針對不同類型的UI或事件來給予。(說明或者其他用途)
多多指教!! 歡迎交流!!
你不知道自己不知道,那你會以為你知道