I created a single page (with code behind .vb) and created Public intFileID As Integer
in the Page load I check for the querystring and assign it if available or set intFileID = 0.
Public intFileID As Integer = 0 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then If Not Request.QueryString("fileid") Is Nothing Then intFileID = CInt(Request.QueryString("fileid")) End If If intFileID > 0 Then GetFile(intFileID) End If End If End Sub Private Sub GetFile() 'uses intFileID to retrieve the specific record from database and set's the various textbox.text End Sub
There is a click event for the Submit button that inserts or updates a record based on the value of the intFileID variable. I need to be able to persist that value on postback for it all to work.
The page simply inserts or updates a record in a SQL database. I'm not using a gridview,formview,detailsview, or any other rad type object which persists the key value by itself and I don't want to use any of them.
How can I persist the value set in intFileID without creating something in the HTML which could possibly be changed.
[EDIT] Changed Page_Load to use ViewState to persist the intFileID value
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then If Not Request.QueryString("fileid") Is Nothing Then intFileID = CInt(Request.QueryString("fileid")) End If If intFileID > 0 Then GetFile(intFileID) End If ViewState("intFileID") = intFileID Else intFileID = ViewState("intFileID") End If End Sub
if your variable is serializable, and you can live with the client reading its value, and it should only live during the postbacks sequence in the scope of the page => you should use ViewState. Show activity on this post.
Session is the better choice as it will persist the value for the session where as view state will persist from POST to POST i.e. every time there is post back the value of the variable will be set according to the value in the state.
View state is used automatically by the ASP.NET page framework to persist information that must be preserved between postbacks. This information includes any non-default values of controls. You can also use view state to store application data that is specific to a page.
As others have pointed out, you can store it in the Session or the ViewState. If it's page specific, I like to store it in the ViewState as opposed to the Session, but I don't know if one method is generally preferred over the other.
In VB, you would store an item in the ViewState like:
ViewState(key) = value
And retrieve it like:
value = ViewState(key)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With