Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字段属性是必需的。所有字段web控件都需要设置字段名_C#_Asp.net_Sitecore_Sitecore Dms - Fatal编程技术网

C# 字段属性是必需的。所有字段web控件都需要设置字段名

C# 字段属性是必需的。所有字段web控件都需要设置字段名,c#,asp.net,sitecore,sitecore-dms,C#,Asp.net,Sitecore,Sitecore Dms,我正在从代码隐藏文件动态分配Sitecore图像控件的字段名,如下所示: .ascx 有时当前项为空,我不想分配任何字段值。我不想展示这个项目。但我最终得到一条错误消息“Field property是必需的。所有Field web控件都要求设置字段名。” 如果我没有指定scDateArticleDate.Item属性,sitecore中是否有自动执行此操作的方法。您应该始终设置Field属性 scDateArticleDate.Field = StartDateFieldName // wher

我正在从代码隐藏文件动态分配Sitecore图像控件的字段名,如下所示:

.ascx

有时当前项为空,我不想分配任何字段值。我不想展示这个项目。但我最终得到一条错误消息“Field property是必需的。所有Field web控件都要求设置字段名。”


如果我没有指定scDateArticleDate.Item属性,sitecore中是否有自动执行此操作的方法。

您应该始终设置Field属性

scDateArticleDate.Field = StartDateFieldName // where is a string right!
然后根据您是否拥有该项目来控制该项目的可见性

还请注意,您在ascx中发布了一个图像,在.cs中发布了一个日期字段

完整的代码是

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;
                }
         }
}

干杯

您没有将Sitecore字段分配给sc:image web控件,它应该起到以下作用:

Sitecore.Data.Fields.Date scDateArticleDate=(Sitecore.Data.Fields.Date)e.Item.FindControl("scDateArticleDate");
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;
                }
         }
}
Sitecore.Data.Fields.Date scDateArticleDate=(Sitecore.Data.Fields.Date)e.Item.FindControl("scDateArticleDate");