State Management :: Wizard Control For Updating Entity?
Oct 29, 2010
how to use wizard control to update existing entity (not create new), i.e. need to pre-load data into wizard fields, may be use viewstate? in this case how to make it?
I'm working on a pretty generic product purchase wizard that takes a user through a process to purchase items in a shopping cart. I am implementing it in MVC2 on Azure without session state. I want to do the following:
GET ShippingInfo calls ActionResult ShippingInfo() POST ShippingInfo calls ActionResult ShippingInfo(ViewDataObject v)
In ShippingInfo action, I need to validate shipping info. If validation fails, it should redisplay the ShippingInfo view passing the ViewDataObject. If validation success, I want to display the ConfirmView using the posted ShippingInfo data in the ViewDataObject.
I have tried the following:
1) Called RedirectToAction("ConfirmView") but this requires the ConfirmView get method to read the ViewDataObject from cache or a database which I want to avoid if possible
2) Called View("ConfirmView") within the ShippingInfo action on validation success but the URL doesn't change so the back button doesn't work properly
3) Changed the form on ShippingInfo to post to the Confirm controller but then if validation fails the URL is on the Confirm page
I really want to just pass the limited form data from ShippingInfo to the ConfirmView. I then I have everything I need on the Post/Submit from the ConfirmView. Also I want the url to be /Order/Confirm when on the confirm page.
Is there a way to do this without TempData or session state?
Does IIS allow a new version of dll to be dropped in an already running website? Does it say the DLL is being used? What will happen if we drop a new version of web.config? Is the outcome, a recycling of the application pool?
I have a webpage which updates user information onto to the database, whenever they click the save buttonsince am using session variables in my page, data in the session variables is getting lost after 20mins if the session is idle, in order to keep the session alive am using the refresh option for every 5mins, after that the session variables are not lostNow my problem is whenever the page refreshes the user is losing all the data which is not saved, by means while the user is working on the page during the refresh all the textbox values are lostAny one has any solution for this? , can we extend the session variable timeout ?i tried this changed the session timeout to 60min in web.config as well, but still the session variable values are not persisting
in a class that my page derives from, so that the viewstate can be stored in DB.
Now, on page_load of my page, I am checking what control caused a postback & based on that I am forcing execution of 2 button click events in a row (by overloading those click events & calling them explicitely), but the behaviour I want is as if the execution of those 2 button click events went through the regular page life cycle.
Here is the sequence of events that happen in typical page life cycle & notice I want to alter behaviour at step 4 (on load):
1) Initialization
2) LoadViewStateData (here the viewstate is loaded from my database using the overridden LoadPageStateFromPersistenceMedium)
3) LoadPostBackData
4) Load
Here, I would like to force execution of 2 button_click events based on whether a particular control posted back.
4.1) imgBtnPrev5_Click() 4.2) imgBtnPrev4_Click()
Now, when the imgBtnPrev5_Click() is executed, the viewstate is already loaded, so we are fine. But after execution of imgBtnPrev5_Click(), I would like to update the viewstate object in memory & then call the overridden SavePageStateToPersistenceMedium (by passing that updated viewstate object as its parameter) and then before execution of imgBtnPrev4_Click(), I would like to call the overridden LoadPageStateFromPersistenceMedium.
5) RaisePostBackEvent
6) SaveViewState
7) Render
My question is, how do I update the "viewstate" object of the page - that is passed to SavePageStateToPersistenceMedium with the changes made to the controls in imgBtnPrev5_Click()?
cookies are generated from the client scripting.e.g. document.cookie = city=NYC;
I want to update this from GUI using
Response.cookies["city"] = LA;
I could not understand why this is not possible.( I read about Httponly and all that stuff but still not clear).If I use Javascript in code behind page then I am able to change the value.e.g.
But I could not use this type of code because there is response.redirect statement in the function where I am updating cookie using (response.cookie) and that's why the javascript code never runs.
Bottomline: I want to update cookies in code behind page which is generated in client scripting.
I am using Wizard Contorl in one of my project, I want to maintain the state of the wizard control at any step .Let me explain further , let suppose when user is at Step 4 out of Step 10 and then user would close the browser so the state should be persisted and when the user come back again to the same URL the step would be 4.
Let me explain, describing the scenario:In a custom server control (in my case, derived from CompositeControl), in the overidden CreateChildControls method I create a complex tree of subcontrols, using information from a db.The db provides both information on which controls I need to create (the user interface's structure) and the data used to fill these controls.Than the user can interact with the control and change the data (that becomes different to what stored on db).
My custom control lives in the same page where there are other controls, obviously.And these controls can cause a postback at any time.What I need is that my custom control keeps the data entered by the user across these postback, without reverting to the original data and loose the user data entry.
Here is the first doubt:
1)I create the subcontrols dinamically in the CreateChildControls at any page refresh (both on first call than on postback).I know that the framework solves the reference between the posted data and the controls I create in the CreateChildControls in order to set properties and raise control events, but can you tell me when and how it actually does this? In which phase of page life cycle? What happens after the CreateChildControls?
A second doubt:2)If the user interface structure must change as a consequence of the data entered, I had to execute CreateChildControls twice (the first time to recreate the original interface to get the events and the second time to create the new interface) In which phase of page/control lifecycle do I have to make the second call to CreateChildControls? I do it on Prerender now, but is it right or wrong, and why?
We have a web site that implements a custom SiteMapProvider using a User Control added in the master page. I need to be able to limit the sitemap nodes added depending on the logged in user, that is, certain users should not see certain sitemap nodes. Currently, the login processing code determines if users are in the certain category or role and then sets a value in session state, for example, Session["UserInRoleXXX"] = "Yes"; I tried changing the code in the user control to check the session state, but I got the following error: NullReferenceException ... Object reference not set to an instance of an object." Can session state be accessed in a user control?
I know the basic of view state. But I dont understand the functionality of view state at a control. For example, a texbox has a property view state. what is the purpose ? what it wiil act for true or false value.
I want to change the value in a cookie: HttpCookie hc = new HttpCookie("HiddenColumns"); hc.Value = customView.HiddenFields; hc.Expires = DateTime.Now.AddDays(365); Response.SetCookie(hc);
I have created a matser page with a two radio buttons, text box and a button. Whenever user sets some values to these control and clicks the button, i will navigating him from one content page to another based on the data he has entered. The problem is after the content page load, the values selected/given in the controls(radio button, text box) are getting cleared.
I had a webform, in which I included the ajax control toolkit. From that, I inserted the tab control on to my webform, having 4 tabs in that tabcontainer. So, I am allowing the end user to enter the information in the first 3 tab panels, and want to display the entered info on the 4 tab panel, which shows all the info entered in the 3 tab panels.
So, how should I manage the information, and display the entered information on the 4th tab panel.. I had some plans of implementing an accordian ajax control for each 3 tabs info, allowing the user to edit at the 4th tab itself..Is this the right idea, or else suggest me, how to display the all the entered info in the 4th tab,like can i use details view, or grid,or suggest something else!!! I added a button to each panel, so that after the user enters the information, he will be redireted to the next tab panel after firing the "Save and continue" button.
AFter the user confirms the data on the 4th tab panel, and presses the submit button, then the entered info has to be entered into the database, for this to happen,. whtat should i do...??Can you plz help me out with some detailed explanation, as I am newbie , need support from you kind of ppl...In the first tab, I had some 4 text boxes, and 3 dropdowns, and a save and continue buttton, and in the next panel, some more text just give me helping hand, by hinting..
I have an application that I am working on. We are experiencing odd outages daily. The outages actually bring down the Virtual Servers (web farm of 4 VMs). The last odd metric before VM becomes inaccessible is that disk I/O is at 100%. While discussing this with the client, an idea was thrown out that I wouldn't have considered because I have never heard of such a thing. The idea was that our immense ViewState (yes I will be working on reducing that in the next release) overwhelmed the server or something and the server needed to start writing the ViewState to a file in a temporary folder somewhere. The thought was that when the server started to get overwhelmed, it would have to queue requests and would run out of memory and need to start using disk.
My application is poorly written and the viewstate is completely overused. However, it works 23+ hours of the day including through peak times without problems. But I have never heard of IIS or ASP.NET writing information to files on the server while queueing requests. I had no answer for this seemingly outrageous theory. Can anyone confirm for me that this is not how ASP.NET (2.0) or IIS are written?
I want to control the login user to access our system. I authenticated all of users by using my own way in project. and I want to limit the number of user to access the system cncurrently. It means , We sell our project to customer as Licence software. If user buy it for three users, we will allow three conurrent login user to access the system. Our system allow our customer to create their own users as they wish. We don't want to control the user creation to use the system. but But we want to control the total no of current login user at the server as per our licence agreement . After reading some article, I see there are two main ways to control the no of users.
One way is to use the membership property in my project and then can count the number of online users by executing Membership.GetNumberOfUsersOnline Method.
If I use membership property, I think it is not ok at my project. As my understanding, the system will control the user creation if we use the memebership provider. I am not really sure whether I can use membership provider property to get my system requirement or not.
I have created a user control with a property named CurrentPage. When a link button is clicked it runs PostbackToPage() and passes a command argument in which then sets the CurrentPage property with this new value. On the page which uses the user control I am trying to display the updated CurrentPage property after a postback. When I click the link button to cause the postback the CurrentPage is the default value. However when I click it again it works as expected. So it seems to only work after 2 postbacks. How can I get this to work after the first postback?
1) I found that my viewstate was not being persisted across postbacks for web user controls. I ensured that the Enable Viewstate property was set to true (of the page)
2) The Viewstate isnt being persisted on the 1st postback.
3) However, it is being persisted from the 2nd postback onwards.
I stepped through the code to ensure that the Viewstate had the 2 keys that I was adding on page load. However, on the 1st postback, the viewstate is empty. Everything is ok from the 2nd postback onwards.
I Have a TreeView that I populate from a DataTable.Once it has been populated, I Cache the Treeview.If I try to add the cached TreeView control to my page, nothing happens. No errors no nothing.If I create an empty TreeView control on the page and do a "Do Until" loop and add each node to that empty TreeView, that works! but only once. The next time it loops, for some reasion the CachedTree.Nodes.Count = 0.I can't see what I'm doing wrong.