0

サイトコア 6.6 アップデート 4

私たちは CustomItemGenerator 1.0 を使用しており、これを使用してサイトのプライマリ ナビゲーション メニューを作成していました。これは期待どおりに機能し、すべてが適切にレンダリングされました。

私の問題は、ページ エディターでメニューを編集しようとしたときです。メニューも見ません。

リピーターを使用して、ナビゲーションに含めるリンクのリストを繰り返します。HTML の作成方法により、各LI要素には、CSS に関連付けられる独自の特定の ID (Sitecore の「Nav Id」フィールド) が必要です。リピーターの ItemDataBound イベント内のコード:

// Cast the item using CustomItemGenerator-generated class
GenericContentPageItem navItem = (GenericContentPageItem)e.Item.DataItem;

liMenuItem.ID = navItem.NavId.Rendered; // I tried "navItem.NavId" by itself as well

したがって、これはブラウザーでは適切にレンダリングされますが、ページ エディターではレンダリングされません。

<li id="<input id='fld_B72EB6696DCF41A49671972D5EA5DEB8_2163B90C08AB4A18970A7F3ECE79DCFC_en_1_f71bd37d18d146c19e222e89fcffe278_3' class='scFieldValue' name='fld_B72EB6696DCF41A49671972D5EA5DEB8_2163B90C08AB4A18970A7F3ECE79DCFC_en_1_f71bd37d18d146c19e222e89fcffe278_3' type='hidden' value=" Home?="">

...次のようにレンダリングする代わりに:

<li id="Home">...</li>

以上のことから、コードを変更して CustomItemGenerator を使用しないようにすると、次のようにブラウザーとページ エディターで正常に動作します。

GenericContentPageItem navItem = (GenericContentPageItem)e.Item.DataItem;

Item nav = Sitecore.Context.Database.GetItem(navItem.ID);
liMenuItem.ID = nav.Fields["Nav Id"].ToString();

コード内でフィールド名をハードコードする必要がないようにしたいので、CustomItemGenerator を使用しています。ページ エディターで動作させたくないというコードの間違いはありますか?

ありがとう!

4

1 に答える 1