Pregunta

I am assigning the field name of Sitecore image control dynamically from code behind file like below:

.ascx

<sc:Image runat="server" ID="scImgRelatedArticle"></sc:Image>

.ascx.cs

if(currentItem != null)
{ 
Sitecore.Web.UI.WebControls.Date scDateArticleDate = e.Item.FindControl("scDateArticleDate") as Sitecore.Web.UI.WebControls.Date;
                    if (scDateArticleDate != null)
                    {
                        if (DisplayDates)
                        {
                            scDateArticleDate.Field = StartDateFieldName;
                            scDateArticleDate.Item = currentItem;
                        }
                    }
}

Sometimes current Item is null i don't want to assign any field value. I dont want to display the item. But i am ending up with an error message "Field property is required. All field web controls require the field name to be set."

Is there a way in sitecore to do this automatically if i didn't specify the scDateArticleDate.Item property.

¿Fue útil?

Solución

You should always set the Field property

scDateArticleDate.Field = StartDateFieldName // where is a string right!

Then you control the visibility of the item depending on if you have or not the item.

Also notice you post a image in your ascx and a date field in the .cs

the complete code would be

scDateArticleDate.Field = StartDateFieldName; //always set the field

if(currentItem != null)
{ 
         Sitecore.Web.UI.WebControls.Date scDateArticleDate = e.Item.FindControl("scDateArticleDate") as Sitecore.Web.UI.WebControls.Date;
         if (scDateArticleDate != null)
         {
                if (DisplayDates)
                {
                    scDateArticleDate.Item = currentItem;
                    scDateArticleDate.Visible = true;
                }
                else
                {
                    scDateArticleDate.Visible = false;
                }
         }
}

cheers

Otros consejos

You are not assigning the Sitecore field to the sc:image web control,it should work as:

Sitecore.Data.Fields.Date scDateArticleDate=(Sitecore.Data.Fields.Date)e.Item.FindControl("scDateArticleDate");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top