0

ページの読み込み時に実行時にjuiceui-menuを構築しようとしていますが、うまくいきません。設計時にメニューを作成しても、実行時に作成する必要がある場合は問題なく動作します。どんな助けでも大歓迎です!これが私がこれまでに持っているコードです...

c# コード:

    private void BuildLoginMenu()
        {
            Juice.Menu jMenuContainer = new Juice.Menu();

            Juice.MenuItem parentItem = new Juice.MenuItem();
            parentItem.ID = "Parent1";
            MenuTemplate p = new MenuTemplate("Parent");
            parentItem.Content = p;      

            Juice.MenuItem childItem = new Juice.MenuItem();
            childItem.ID = "Parent1";
            MenuTemplate c = new MenuTemplate("Parent");
            childItem.Content = c;

            parentItem.Items.Add(childItem);

            jMenuContainer.Items.Add(parentItem);
            Placeholder1.Controls.Add(jMenuContainer);
      }
    }

参照用の MenuTemplate クラスは次のとおりです。

    public class MenuTemplate : ITemplate
        {

            private string _text;

            public MenuTemplate(string text)
            {
              _text = text;
            }

           public void InstantiateIn(Control container)
           {
             LiteralControl l = new LiteralControl(_text);
             container.Controls.Add(l);
           }
       }
4

1 に答える 1

0

今回は自分自身の質問に答えています...コード ビハインドで JuiceUI:Menu をビルドしない方が簡単だとわかりました。代わりに、jQueryUI CSS ファイルを使用して HTML 順不同リストを作成し、リストのスタイルを設定します。jQueryUI は JuiceUI のバックボーンであるため、これを機能させるのに問題はありませんでした。私がこのルートに行った理由は次のとおりです。コード ビハインドでサーバー コントロールを文字列としてレンダリングし、出力を div の innerhtml プロパティに割り当てることはできませんが、コード ビハインドで html を文字列としてレンダリングし、それをに割り当てることはできます。 div の innerhtml プロパティ - これにより、メニューを動的に構築できます。私のために働くコードについては、以下を参照してください。

HTML

        <script type="text/javascript">
          $(function () {
               $("#menu").menu();
          });
        </script>    

        <div id="menuDiv" runat="server">
        </div>

C#

        str += "<ul id=\"menu\">  ";        
        //loop through each menuItem, build menu from top down.
        foreach (MenuItem m in menuItems)
        {        

            str += "<li>";
            str += "<a href=\"#\">" + m.Title + "</a>";
            str += "</li>";           

        }
        str += "</ul>";
        menuDiv.InnerHtml = str;
于 2013-01-03T20:40:10.580 に答える