2012-06-19 2 views
0

내 응용 프로그램에서는 프로그램을 사용하여 새 페이지로 리디렉션하고 패널 표시 줄 항목을 클릭하거나 선택하면 SUBITEMS 목록을 슬라이드하여 열어야합니다. 그러나 이것이 어떻게 구현되어야하는지 확신 할 수 없습니다.Telerik PanelBar : 항목을 새 페이지로 리디렉션 할 수 있습니까?

필자는 "panel"의 "item"과 함께 ".Action"을 사용했지만 오류가 발생합니다. 편의를 위해 코드의 작은 부분이 아래에 표시됩니다 (주로 두 번째 마지막 줄에 초점을 맞 춥니 다). 발생 된 오류는 다음과 같습니다

HttpException는 사용자 코드

<% Html.Telerik().PanelBar() 
      .Name("PanelBar") 
      .SelectedIndex(0) 
      .Items(item => 
      { 
       item.Add() 
        .Text("Home").Action("Index", "Home") 
        .Items(subItem => 
        { 
         subItem.Add().Text("My Profile").Action("MyProfile", "Profile"); 
         subItem.Add().Text("Test"); 
        }); 

       item.Add() 
        .Text("Orientation").Action("Index", "Orientation") 
        .Items(subItem => 
        { 
         subItem.Add().Text("GridView"); 
         subItem.Add().Text("Scheduler"); 
         subItem.Add().Text("Docking"); 
         subItem.Add().Text("Chart"); 
        });     

      }).Render(); 
    %> 

그것은 ".Action는"이 경우 작동하지 않는 것 같다 의해 처리되지 않은했다. 그래서 제 질문은 아이템을 어떻게 이벤트에 가져 가야할까요?

답변

1

다음은 자바 스크립트를 사용하여이 작업을 수행하는 스 니펫이며 잘 작동합니다. 나는 이것을하는 다른 방법들도 있다고 논쟁하지 않는다. 당신이 알고있는 것처럼,이 스 니펫은 내가하고있는 MVC 애플리케이션에서 온 것입니다. 나는 당신이 그것을 할 수 있다는 것을 알고 있도록 스타일 지정 코드도 포함시켰다. 나는 당신이 그 기능을 요구하지 않았 음을 알았지 만 그것은 재산에 대한 당신의 이해를 더 잘 도울 것이라고 생각했습니다.

내가 글꼴을 굵게 표시하고 경계선을 없애고 마우스 이벤트를 트랩하여 리디렉션을 수행하려고한다고 가정 해 보겠습니다.

스타일을 처리하려면 단순히 항목을 추가 한 다음 HtmlAttributes 속성을 사용하여 스타일을 설정하면됩니다. 내 사이트가 서핑 사이트입니다, 나는 서핑 숍 홈페이지를 열고 동시에 하위 메뉴 을 드롭하고 싶은 여기

은 ...

**item.Add()  
    .Text("Surf Shop")  
    .HtmlAttributes(new { style = "font-weight: bold; border:none;" })** 

스타일링에 대한 코드입니다. 이렇게하려면 동일한 HtmlAttributes 특성 속성을 사용하고 onmousedown 이벤트 이벤트 처리기에 연결합니다. 그런 다음 핸들러를로드하려는 컨트롤러 이름으로 전달합니다. 모든 페이지를 색인이라고하기 때문에 컨트롤러 만 있으면됩니다. 그러나 여기에 전체 문자열을 전달하고 간단하게 리디렉션 할 수 있습니다. 무엇이든 다시 머리 불면 ... :-)

여기

이벤트 처리기에 후크 코드는 ...

**item.Add() 
    .Text("Surf Shop") 
    .HtmlAttributes(new { onmousedown="onBaseNavItemClick('SurfShop');" })** 
마지막으로

가 여기에 스타일과 후크 모두 전체 코드입니다 이벤트 핸들러

**item.Add() 
    .Text("Surf Shop") 
    .HtmlAttributes(new { style = "font-weight: bold; border:none;",onmousedown="onBaseNavItemClick('SurfShop');" })** 

우리의 이벤트 핸들러 함수

0123에
**function onBaseNavItemClick(itemText) 
{ 
    window.location = BASE_URL + itemText + "/index"; 
}** 

ps. 호출중인 MVC 컨트롤러는 PanelBar의 selectedIndex 속성을 토글하기 위해 ViewData에서 값을 다시 전달해야합니다. 이렇게하면 리디렉션이 수행 될 때 올바른 Panel이 열립니다.

희망이 도움이 ...

관련 문제