0

フィールドレンダラーの代わりにASPコントロールを使用してフィールドを表示できるかどうか、誰か教えてもらえますか。下の図を参照してください。注:RepeaterのItemDataboundイベントで行う必要があります。

フィールドを外部リンクとして使用するテンプレートがあります。例:米国にお問い合わせください。ページにそのリンクを表示する1つの方法は、次のようにフィールドレンダラーを使用することです。

ContactUS.aspx:

<asp:Repeater ID="rptContactUS" runat="server" OnItemDataBound="Menu_OnItemDataBound">
        <ItemTemplate>
           <item><sc:FieldRenderer ID="frContactUS" runat="server"/></item>                                           
       </ItemTemplate>    
 </asp:Repeater>

ContactUS.aspx.cs:

protected void Menu_OnItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Field item = (Field)e.Item.DataItem;
        if (item != null)
        {
            FieldRenderer frContactUS= (FieldRenderer)e.Item.FindControl("frContactUS");
            if (frContactUS!= null)
            {
                frContactUS.FieldName = item.Name;
            }
        }    
    }

上記のコードは正常に機能します。私の質問は、FieldRendererの代わりにAspコントロールを使用して、フィールドアイテムからリピーターのアイテムデータバインドイベントのリンクのasp hrefプロパティにリンク値を割り当てることができるかどうかです。はいの場合、方法を教えてください。

ありがとう、スハス

4

1 に答える 1

0

はい、できます。あなたの例で私が見たものから、あなたはフィールドをメニューにバインドしています。アイテムのリストをメニューにバインドすることもできます。次に、次のようにリピーターでアイテムのフィールドを取得できます。

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Item dataItem = (Item)e.Item.DataItem;
                    System.Web.UI.WebControls.HyperLink hl = (System.Web.UI.WebControls.HyperLink)e.Item.FindControl("hl");

                    if (hl != null)
                    {
                    Sitecore.Data.Fields.LinkField url = dataItem.Fields["linkfield"];

                    if (url != null)
                    {
                        hlMerk.NavigateUrl = url.Url;
                        hlMerk.Target = url.Target;
                        // more properties are available check sitecore documentation
                    }                       
                }
           }

}

ここから、urlフィールドが表示されます(明らかに、urlの代わりに正しいフィールド名を指定する必要があります。LinkFieldには、http://sdn.sitecore.netにある一般的なSitecoreドキュメントで説明されているいくつかのプロパティがあります

于 2012-05-22T12:43:22.580 に答える