2008-12-18 15 views

回答

2

其實很簡單。傳遞給實現IPostbackDataHandler接口的EVERY控件的此方法的NameValueCollection是Page.Request.Form的內容。因此,您可以隨時通過獲取關於HttpContext.Current.Request.Form的手錶來訪問它。

1

呃......我建議你將IDE環境設置爲debug the .net framework,並在Control的LoadPostData()方法上設置一個斷點。這有點過分,但是如果你願意通過對Control類的遞歸調用(也許在方法上設置條件斷點?),你將能夠以這種方式獲取數據。

祝你好運!

1

如果你想確保你在看數據進入一個特定的控制,你也可以繼承其控制的類型和IPostBackDataHandler.LoadPostData自定義實現過程中斷裂。

例如,您有一個編程添加的控件來收集用戶的城市。變化:

Public City As Textbox 

Public City As BreakableLoadPostDataTextBox 

Public Class BreakableLoadPostDataTextBox 
    Inherits TextBox 

    Protected Overrides Function LoadPostData(_ 
    ByVal postDataKey As String, _ 
    ByVal postCollection As System.Collections.Specialized.NameValueCollection) _ 
    As Boolean 

    Return MyBase.LoadPostData(postDataKey, postCollection) ' Break here 
    End Function 
End Class 

坐落在Return調用一個斷點。當執行打破了,你應該能看到了所使用讀取控制的新值了postCollectionpostDataKey。當然,您可以通過跟蹤呼叫以及其他方式將這種方法加入到您的心中。