ASP.NET Custom Server Controls: Cute ASP.NET TextBox Control - Handling the “PostBack” from “ViewState”
(Page 5 of 6 )
In the previous section, I already explained the “viewstate” and how to handle it in a very easy manner using a simple “text” property. This section explains the implementation of “postback” in our control.
As you know, in general, any server control in ASP.NET maintains its “state” even after a “postback.” The “postback” could occur in several ways, including by just clicking a “submit” button. Within our control, I would like to maintain the same. As I am already maintaining the “state” information through “viewsate,” I need to refresh (or place) the latest value (or information) within my control before the page gets disposed. This could be solved by implementing the interface “IPostBackDataHandler.” Let us consider the following code:
Public Function LoadPostData(ByVal postDataKey As String, ByVal postCollection As System.Collections.Specialized.
NameValueCollection) As Boolean Implements System.Web.UI.IPostBackDataHandler.LoadPostData
If Text <> postCollection(Me.UniqueID) Then
Text = postCollection(Me.UniqueID)
Return True
End If
Return False
End Function
Public Sub RaisePostDataChangedEvent() Implements System.Web.UI.IPostBackDataHandler.
RaisePostDataChangedEvent
End Sub
You can observe that we need to implement two methods, namely “LoadPostData” and “RaisePostDataChangedEvent.” Within the “LoadPostData,” I am comparing the value available in “viewstate” (“text” property) with the posted value (could be the same or modified value) to the server with an IF condition. If a user modifies the value, the posted value would be different and we will update the latest value back to the “viewstate” using the same “text” property.
What are “Return True” and “Return False”? When the posted values are different from our previous state values and, if we want raise any events (such as the “textchanged” event or others), we would return TRUE. This in turn executes the method “RaisePostDataChangedEvent” (currently I implemented nothing inside that, as there exist no events within my control). Returning “false” would not execute “RaisePostDataChangedEvent” at all. Actually in this scenario, I don’t need to return “true” at all, but it is just for your understanding.
Next: Is it cute? How can we make it cute? >>
More ASP.NET Articles
More By Jagadish Chaterjee