-1

この EPIServer エラーに少し問題があります: CS1061: 'System.Web.UI.Control' には 'CurrentPage' の定義が含まれておらず、タイプ 'System.Web.UI.Control の最初の引数を受け入れる拡張メソッド 'CurrentPage' もありません' ' が見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?)

ascx ファイルからパラメーターを使用してメソッドにアクセスしようとすると。ascx ファイル:

<div id="nav">
    <ul role="menu">
      <li <%# GetMenuClass(Container.CurrentPage)%> role="menuitem">
            <%= GetNewsPage %>
            <%--<a href="#">News</a>--%>
        </li>
        <li <%# GetMenuClass(Container.CurrentPage) %> role="menuitem">
            <%= GetClientPage %>
            <%--<a href="#">Clients</a>--%>
        </li>
    </ul>
</div>

コードビハインドのメソッド:

protected string GetMenuClass(PageData page)
    {


        if (page.IsSelected(CurrentPage))
        {
            return "class=\"menu-item selected\"";
        }

        return "class=\"menu-item\"";
    }

私が達成したいのは次のようなものです(ニュースページが選択されている場合):

<div id="nav">
<ul role="menu">
<li class="menu-item selected" role="menuitem"> News </li>
<li class="menu-item" role="menuitem">
<a href="#">Clients</a>
</li>
</ul>
</div>
</nav>

誰かが助けることができれば、私は素晴らしいです。

4

2 に答える 2

1

バインディング構文式 ( a <%#) を使用していて、Container を使用していることに注意してください。リピーターのようなデータバインド コントロールでこれを想定していますか?

そうである場合は、GetMenuClass への呼び出しを次のように修正してみてください。

GetMenuClass((PageData)Container.DataItem)

PageData オブジェクトのコレクションをリピーターにバインドしたとします。

于 2013-04-10T08:19:16.057 に答える