I have a asp.net web form which will submit information to come as emails. Whenever user fill the form and click on submit button,the information user entered will be sent as email.
This web form has 4 page. but the web form will not use all 4 page on all requests.
if the user select a particular value in first page, the form will bypass the 3rd page and go the last 4th page(like...page1,2,4). IF it is any other values selected in the first page. form will navigate as page1,2,3,4.
So now my problem is when multiple users access the same website, the value in the first page get combines from different users and the form will act abnormally.Sometime it will bypass sometimes it will not bypass the page3
Show below is the variable decalrations:
Public strRoleType As String = String.Empty
Protected Shared isAreaSelected As Integer = 0
Protected Shared isStoreSelected As Integer = 0
Protected Shared isHeadOfficeSelected As Integer = 0
Protected Shared isRegionSelected As Integer = 0
I guess the problem is with strRoleType variable whether it is getting values from different users.
开发者_如何学GoDo any have any work around?
Public Property storeSelected()
Get
Dim returnValue As Integer
returnValue = Session("isStoreSelected")
Return returnValue
End Get
Set(ByVal value)
Dim outputValue As Integer = value
Session("isStoreSelected") = outputValue
End Set
End Property
Dim currentView As Int16
currentView = mvRequestorForm.ActiveViewIndex
If currentView = 3 And isStoreSelected = 1 Then
mvRequestorForm.ActiveViewIndex = (currentView - 2)
Else
mvRequestorForm.ActiveViewIndex = (currentView - 1)
End If
The problem is that your variables are declared as Shared
which means that they are, well, shared between the users. You will need to store these values in a way that each user session gets its own set of value (such as in a Session variable or so).
Update
While you do store values in Session state, you read the shared variable when deciding whether to show the view or not:
If currentView = 3 And isStoreSelected = 1 Then
You need to read this from session state as well:
If currentView = 3 And Session("isStoreSelected") = 1 Then
The access to the Session state value should preferably be encapsulated in some method or property.
In this case (with MultiView and handling the "page" navigation in the Postback), it's better to remove the Shared variables and use properties that link to the ViewState, like this:
Public Property SelectedStore As Integer
Get
If (String.IsNullOrEmpty(ViewState("selectedStore")) Then
Return 0 'Default value
Else
Return CInt(ViewState("selectedStore"))
End If
End Get
Set (ByVal value As Integer)
ViewState("selectedStore") = value
End Set
End Property
This way, the value is stored across "page" navigations, which you can get and/or set in your code-behind like this:
If currentView = 3 And SelectedStore = 1 Then
mvRequestorForm.ActiveViewIndex = (currentView - 2)
Else
mvRequestorForm.ActiveViewIndex = (currentView - 1)
End If
精彩评论