2013-01-02 2 views
0

페이지가로드 될 때 런타임에 juiceui-menu를 만들려고하는데 행운이 없습니다. 디자인 타임에 메뉴를 빌드했지만 런타임에 빌드해야하는 경우 제대로 작동합니다. 어떤 도움을 많이 주시면 감사하겠습니다!Juice-ui : 코드 숨김으로 메뉴를 동적으로 빌드하십시오.

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 클래스는 참조 용입니다 : 여기에 지금까지 가지고있는 코드 ...

C# 코드의 나는이시기에 내 자신의 질문에 대답하고 있습니다

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); 
      } 
     } 

답변

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; 
+0

뿐만 아니라이 허용하는 새로운 포크라는 이름의 양조가있어, http://shellscape.org/#brew – shellscape