Как лучше всего просмотреть данные, которые событие LoadPostData загружает в элементы управления в ASP.NET?





Ух ... Я бы посоветовал установить для среды IDE значение отладка .net framework и установить точку останова для метода LoadPostData () Control. Это немного тяжеловесно, но если вы готовы перейти к рекурсивным вызовам класса Control (возможно, установить условную точку останова для метода?), Вы сможете получить доступ к данным таким образом.
Удачи!
На самом деле это действительно просто. Коллекция NameValueCollection, передаваемая этому методу КАЖДОГО элемента управления, реализующего интерфейс IPostbackDataHandler, является содержимым Page.Request.Form. Так что вы можете получить к нему доступ в любое время, купив часы на HttpContext.Current.Request.Form.
Если вы хотите быть уверены, что смотрите на данные, поступающие в конкретный элемент управления, вы можете создать подкласс его типа элемента управления и прервать его во время пользовательской реализации 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. Когда выполнение прерывается, вы должны увидеть postDataKey, который используется для чтения нового значения элемента управления из postCollection. Вы, конечно, можете расширить этот метод, сколько душе угодно, с помощью вызовов Trace и прочего.