Category Archives: EPiServer 4.6x

Using XForms to store information

At the moment I’m adding some functionallity to, so that a visitor can add products, that aren’t in the regular assortment, to a cart and by a simple click send this cart by fax to the closest Systembolag. A pretty nice feature. The customer also wanted to store the orderinfo in episerver if something goes wrong, so I thought that you must be able to do that with XForms. And yes, it was very simple.

First of all I added a “XForms form”-property to the pagetype. Then I made an empty Form. The rest is handled from code behind. The following example works both with 4.6 and CMS 5. Hopefully in CMS 5 R2 aswell.. 🙂

// Get guid for the form and creates instance
XForm form = XForm.CreateInstance(new Guid((String)CurrentPage["XFormPropertyName"]));
// This is where data is stored
XFormData form_data = form.CreateFormData();
//We want this info related to the order page
form_data.PageId = CurrentPage.PageLink.ID;
// We want it saved in the database
form_data.ChannelOptions = ChannelOptions.Database;

// Here we add the values.
form_data.SetValue("Key 1", "some value");
form_data.SetValue("Key 2", "some other value");
// and saves it

Pretty nice if you want to avoid creating your own sql-table or some other way to store data.

EPiServer 4.6x, Friendly URL and Windows Vista / IIS7

Got so frustrated yesterday that I hade to leave one hour earlier. Must have been very tired cause I couldn’t manage to get Friendly URL running with EPiServer 4.6 on Vista, even though I have managed to do it before.

Well, this morning I solved it in a few minutes.. 🙂
The problem was that in IIS7, you have to specify how the IIS handles error pages, it’s not enough to just change 404 to /Util/NotFound.aspx. By default, IIS gives you detailed information on what went wrong, you have to change this so it uses yours/episerver notfound-page.

Then you have to make sure that you run Classic mode in your App-pool and that your <module> in web.config says <module runAllManagedModulesForAllRequests=”true”>

You can

Good luck