2010-08-16 3 views
2

윽을 발사하지,이 임은 bulletedList에서 동적 메뉴를 만들려고 BulletedList 온 클릭이

미친 저를 몰고있다, 대부분의 메뉴 항목은 로그 아웃 버튼이 일부 정리 코드를 수행해야하지만 일반 링크가 있습니다.

내 삶을 위축시킬 수는 없지만 BullettedLists onclick 이벤트가 발생합니다. BulletedList는 사용자 정의 컨트롤 안에 있습니다 (차이가있을 경우)

아이디어가 있으십니까? 또는 대안, 더 나은 솔루션에 대한 아이디어가 있습니까?

코드 BulletedList

<asp:BulletedList OnClick="menu_Click" runat="server" CssClass="MainMenu" ID="loggedInMenu" DisplayMode="HyperLink" /> 

추가 요소

loggedInMenu.Items.Add(new ListItem("Logout", "")); 

클릭 핸들러

protected void menu_Click(object sender, BulletedListEventArgs e) 
{ 

    user.logout(); 
    Response.Redirect("Default.aspx"); 
} 

답변

6

당신은 잘못된 DisplayMode FO를 사용하는

아래 r BulletedList 컨트롤. DisplayModeLinkButton이어야합니다. 사용하는 경우 DisplayMode.HyperLink :

사용자는 다른 페이지로 이동할 링크를 클릭 할 수 있습니다. 개별 항목의 값 속성으로 대상 URL을 제공해야합니다.

이것은이 컨트롤에 대한 MSDN docs입니다. (그것은 약 3/4 페이지 아래 방법을합니다.)

당신이 HyperLink 모드에서 BulletedList 컨트롤을 사용하면, 당신의 ListItem의 값은 당신이 탐색하고있는 URL입니다. 따라서 정적 페이지 HTML 컨트롤은 <a> 태그의 href 속성으로 ListItem.Value을 사용합니다.

<li><a href="1">One</a></li> 

하지만 다시 게시하고자하기 때문에, 당신은 설정해야합니다 : 여기

(이것은 일반 오래된 HTML 앵커 태그 w A HREF /의) HTML 마크 업이 문구는 하이퍼 링크의 DisplayMode를 사용할 때의 모습입니다 BulletedListDisplayModeLinkButton입니다. 그렇게하면 페이지로 다시 게시 할 수있게되며 이벤트 핸들러가 이벤트를 트랩합니다. 그런 다음 적절하게 클릭을 처리 할 수 ​​있습니다. 전달 된 이벤트 인수 ( BulletedListEventArgs 유형)는 Index 속성을 가지며 목록의 어떤 항목을 클릭했는지 알려줍니다. 다른

<asp:BulletedList ID="bullet" runat="server" DisplayMode="LinkButton" 
    onclick="bullet_Click"> 
    <asp:ListItem Text="One" Value="1">One</asp:ListItem> 
</asp:BulletedList> 

모든 것이 LinkButton로 설정되어 DisplayMode 제외하고 동일합니다

여기 내가 사용하는 업데이트 .ASPX 코드입니다. 이를 사용할 때 목록 항목을 클릭하면 내 bullet_Click 이벤트 핸들러가 시작됩니다.

나는 이것이 도움이되기를 바랍니다 !!

+0

그래, 그랬어. 감사. 다른 유연한 솔루션을 찾기 위해 계속 노력할 것입니다. 다른 링크에서 이러한 모든 포스트 백이 일어나기를 원하는지 확실하지 않습니다. – Keeno

+1

다른 링크의 포스트 백에서 무엇을하려고합니까? 일부 AJAX 기능을 고려하고 잠재적으로 jQuery와 같은 프레임 워크를 사용할 수도 있습니다. 동적 목록을 작성하고 이벤트를 처리하는 것은 매우 쉽습니다. 알려 주시면 예제를 추가 할 수 있습니다. –

+0

이봐, Ajax는 필자가 마지막에했던 것과 정확히 똑같다. bulletedList (하이퍼 링크 포함)를 사용하고 난 다음 항목 중 하나에 onclick 특성을 추가했다. onclick은 아약스 호출을 해고했다. 다시 한 번 감사드립니다. – Keeno

관련 문제