• 控制項學習六(AutoPostBack機制和事件的觸發)


     

    八.關於AutoPostBack機制和事件的觸發

    Server端程式(ASP.NET)想要知道已經RenderClient端的控制項,究竟發生了什麽事件,就一定得來一個postback,否則Server端的ASP.NET程式,根本無從得知Client端網頁(上面的控制項)究竟發生了什麽事件。

    這種情況在ASP.NET中時常發生。因此,ASP.NET技術中,乾脆做一個共用的機制,來處理這樣的【PostBack+控制項事件】。

    知道這個“共用的機制”,我們可以完美上面的代碼。

    Render部分:

        '底下的Render會產生一段按鈕的HTML 例如:<Button> 標題文字 </Button>

        Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)

            'Render控制項HTML

            Dim JavaScript As String

            '建立 Postback 用的 JavaScript

            JavaScript = Me.Page.GetPostBackEventReference(Me, "")

            output.AddAttribute("onclick", JavaScript)

            output.AddAttribute("id", Me.ClientID)

            output.AddAttribute("name", Me.ClientID)

            output.RenderBeginTag("button")

            output.Write(Me.Text)

            output.RenderEndTag()

        End Sub

    複寫OnLoad事件部分

        '覆寫OnLoad事件

        Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)

            Dim controls As WebControls.WebControl

            Dim args As String

            '改成只剩這行

            If Me.Page.Request("__EVENTTARGET") = Me.ID Then RaiseEvent OnClick()

            MyBase.OnLoad(e)

        End Sub

  • 相关阅读:
    一段自己写的丑陋的表单验证代码
    简单的星级评价
    有个项目
    好久没写了,重装了系统重新配置的Live Writer,看看效果:
    XmlHttpRequest调用Webservice的一点心得
    局域网共享怎么设置?我想把其中一个电脑的F盘共享?
    TCP/IP协议详解
    input file实现多张图片上传
    .NET C#中如何备份SQL数据库
    CSS中cursor鼠标形状属性列表
  • 原文地址:https://www.cnblogs.com/htht66/p/1334177.html
Copyright © 2020-2023  润新知