ASP.NET WebForm - UI觸發事件

  • 13760
  • 0

本篇介紹 .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或事件來給予。(說明或者其他用途)

 

 


多多指教!! 歡迎交流!!

你不知道自己不知道,那你會以為你知道