如何: 以手動方式張貼回為使用 Visual Basic.NET.aspx 頁面中的特定事件

文章翻譯 文章翻譯
文章編號: 328923 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何設定.aspx 網頁,這樣所產生的 HTML 程式碼會回傳至伺服器以回應特定事件的控制項。範例供此發行項會使用網際網路總管網頁控制項樹狀檢視控制項。

AutoPostBack 屬性

  • ,則為 True。當 AutoPostBack 設為 True 為控制項可能會回傳至伺服器回應不想造成回傳的事件。

    比方說 AutoPostBack 設為 True,在樹狀檢視控制項造成回傳以回應這些事件: onExpand; onCollapse; onCheck; 和 onSelectedIndexChange。
  • ,則為 False。藉由將 AutoPostBack 設定為 False,您張貼回手動以回應特定事件。

建立程式碼

如果要張貼回手動以回應 onSelectedIndexChange 事件,請依照下列步驟執行。
  1. 建立 Web 應用程式,然後再將 樹狀檢視 控制項放入.aspx 網頁。
  2. .aspx] 頁面中將 [樹狀檢視 控制項的 AutoPostBack 屬性] 設定設 為 False]。
  3. 樹狀檢視節點 屬性中, 按一下 [集合] elipsis (...) 按鈕,然後將一些節點和子系加入至 樹狀檢視 節點集合]。
  4. 處理 onload 事件之 [HTML] 頁,然後呼叫 initTree 函式。.aspx 網頁的 Page_Load 事件中,將會產生這個用戶端端函式。

    在 [HTML 檢視.aspx 頁面的新增 onload 事件的處理常式 body 標記,如下所示:
    <body onload="initTree()">
    					
  5. 將下列程式碼從這個 Page_Load 函式加入至您自己 Page_Load 函式在.aspx 檔案的 程式碼後置 類別中。
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strTreeName As String = "TreeView1"
        Dim strRef As String = Page.GetPostBackEventReference(TreeView1)
        Dim strScript As String = "<script language=""JavaScript""> " & vbCrLf & _
            "<!-- " & vbCrLf & _
            "	function initTree() { " & vbCrLf & _
            "		" & strTreeName & ".onSelectedIndexChange = function() { " & vbCrLf & _
            "			if (event.oldTreeNodeIndex != event.newTreeNodeIndex) " & vbCrLf & _
            "				this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); " & vbCrLf & _
            "			window.setTimeout('" & strRef.Replace("'", "\'") & "', 0, 'JavaScript'); " & vbCrLf & _
            "		} " & vbCrLf & _
            "	} " & vbCrLf & _
            "// --> " & vbCrLf & _
            "</script>"
    
        Page.RegisterClientScriptBlock("InitTree", strScript)
    End Sub
    					

程式碼的說明

如何開發程式碼

本文稍早所提供的程式碼是使用下列程序所發展的:
  • .aspx 網頁程式開發,並 AutoPostBack樹狀檢視 控制項的已設定為 True
  • .aspx 網頁已在 Internet Explorer] 瀏覽器中檢視並在來源已儲存至.html 檔案。
  • AutoPostBack樹狀檢視 控制項的已設定為 False,然後檢視網頁一次在瀏覽器中。
  • 比較兩個檔案,您會看到差異有助於產生本文稍早所提供的程式碼。

程式碼的相關資訊

  • 從本文中 Page_Load 函式程式碼的呈現在瀏覽器中的下列程式碼:
    <script language="JavaScript">
    <!-- 
        function initTree() { 
            TreeView1.onSelectedIndexChange = function() { 
                if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
                    this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); 
    
                window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript'); 
            } 
        } 
    // -->
    </script>
    						
    initTree 函數會執行 HTML 網頁載入瀏覽器中時。initTree 函式會覆寫的 TreeView1onSelectedIndexChange 事件,以便 onSelectedIndexChange 事件加入至事件佇列,以供在頁面,並再張貼回至伺服器。
  • onSelectedIndexChange 函式的第一行
    if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
        this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
    						
    來自直接原始定義函式所定義的已儲存的.html 檔案。
  • 為 True 樹狀檢視的設定 AutoPostBack 呈現 HTML 在下列程式碼:
    window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript');
    						
    由於回傳機制 (在此情況下,__doPostBack) 可能會在未來變更,產生函式在伺服器上的使用下列程式碼:
    string strRef = Page.GetPostBackEventReference(TreeView1);
    					
    的回傳事件參考然後使用在 Page_Load,產生 回傳 事件,在用戶端上的。

?考

如需詳細資訊按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中發行項]:
305140資訊: ASP.NET 藍圖

319441如何: 以動態方式將節點加入一個樹狀檢視 WebBrowser 控制項使用 Visual Basic.NET
網際網路總管 WebControls 參考
http://msdn.microsoft.com/en-us/library/ms528669(VS.85).aspx

屬性

文章編號: 328923 - 上次校閱: 2003年6月25日 - 版次: 3.4
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
關鍵字:?
kbmt kbhowtomaster kbservercontrols KB328923 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:328923
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com