November Happy Hour will be moved to Thursday December 5th.

Manoj Kumar
Aug 30, 2011
  3200
(0 votes)

Inline or Code Behind - EPI Server Property

I have a requirement where a product price is selected based of discount flag setting done by web admin in edit mode. I have three property's “Normal Price”, “Promotional Price” and a flag “For sale”. if “for sale” is on then the promotional price should be shown other wise normal price should be shown.  I found two ways to work on this issue inline or code behind.

 

Code Behind :-

For code behind I created a property and made a check in get assessor of the property -

 

 public int Price
        {
            get
            {
                PropertyData property = CurrentPage.Property["StockStatus"];

                if (property.ToString().ToLower() == "forsale")
                {
                    PropertyData property22 = CurrentPage.Property["PromotionalPrice"];
                    if (property22 != null && !property22.IsNull)
                    {
                        _price = Convert.ToInt32(property22.ToString());
                    }
                }
                else 
                {
                    PropertyData property22 = CurrentPage.Property["ProductPrice"];
                    if (property22 != null && !property22.IsNull)
                    {
                        _price = Convert.ToInt32(property22.ToString());
                    }
                }

                return _price;
            }

        }

Only html at UI is-
<% = Price %>

 

 

Inline Code:-

Below is the straight forward inline code -

 

<% if (CurrentPage.Property["StockStatus"].ToString().ToLower() == "forsale")
   { %>
       <%=  CurrentPage.Property["PromotionalPrice"].ToString() %>
<% }
   else
   { %>
         <%= CurrentPage.Property["ProductPrice"].ToString() %>
<% } %>
Aug 30, 2011

Comments

Magnus Rahl
Magnus Rahl Aug 30, 2011 02:41 PM

To "ToString" the properties directly is dangerous - they could be null. Get a string property like this (DefaultValue could be anything you like):

CurrentPage["StockStatus"] as string ?? DefaultValue

Eric
Eric Aug 31, 2011 12:39 PM

or use Convert.String could be used i think that will returns string.empty if i remember correctly if null..

Manoj Kumar
Manoj Kumar Sep 5, 2011 09:44 AM

Yes using "ToString" directly is dangerous. Further on best practice of property usage go to online cms sdk.

- http://sdk.episerver.com/library/cms6.1/index.aspx#
- Developers Guide
- Core Features
- Properties
- Working With Page Properties in EPiServer CMS

Please login to comment.
Latest blogs
Optimizely SaaS CMS + Coveo Search Page

Short on time but need a listing feature with filters, pagination, and sorting? Create a fully functional Coveo-powered search page driven by data...

Damian Smutek | Nov 21, 2024 | Syndicated blog

Optimizely SaaS CMS DAM Picker (Interim)

Simplify your Optimizely SaaS CMS workflow with the Interim DAM Picker Chrome extension. Seamlessly integrate your DAM system, streamlining asset...

Andy Blyth | Nov 21, 2024 | Syndicated blog

Optimizely CMS Roadmap

Explore Optimizely CMS's latest roadmap, packed with developer-focused updates. From SaaS speed to Visual Builder enhancements, developer tooling...

Andy Blyth | Nov 21, 2024 | Syndicated blog

Set Default Culture in Optimizely CMS 12

Take control over culture-specific operations like date and time formatting.

Tomas Hensrud Gulla | Nov 15, 2024 | Syndicated blog