サイトコア 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 を使用しています。ページ エディターで動作させたくないというコードの間違いはありますか?
ありがとう!