2010-06-12 2 views
1

ASP.NET 2.0 응용 프로그램에서 사용자가 클릭하지 않아도 MenuItem을 선택할 수 있도록 허용하려고합니다 MenuItem의 실제 텍스트가 아니라 현재 ASP.NET에서 DynamicHoverStyle.BackColor 속성으로 표시된 MenuItem 주위에 배치되는 강조 영역 만 클릭합니다. BackColor는 하위 메뉴의 각 MenuItem에 동일한 너비로 표시되므로 가장 긴 텍스트가있는 MenuItem을 기반으로 각 하위 MenuItem의 히트 영역 (클릭 가능 영역)을 동일한 너비로 만듭니다 (BackColor 영역에서 동일 함).), 각 개별 하위 MenuItem에 표시되는 텍스트의 양에 관계없이.ASP.NET 2.0의 MenuItems에서 같은 너비 영역 만들기 런타임에 MenuItems가 추가 된 메뉴

다음은 설정입니다. 마스터 페이지의 메뉴를 사용하여 각 페이지에서 비슷한 메뉴를 표시합니다. 페이지 중 일부는이 메뉴를 표시하지 않으며 일부 메뉴 항목은 추가 MenuItem을 최상위 수준에 추가하기도하고 때로는 기존 최상위 MenuItem에 하위 MenuItems를 추가하는 경우도 있고 때로는 상위 메뉴 항목에 MenuItem을 추가 한 다음 추가 MenuItems 그 새롭게 추가 된 최상위 레벨 submenuitems있다.

이 메뉴는 가로 방향을 가지고 있으며, 그 점에서 단지 최상위 처음 노출 동적이며, 선택하면 하위 메뉴가 표시된다.

사용성 테스트 중 우리는 사용자가 하위 메뉴를 노출하기 위해 최상위 메뉴 항목을 선택한 다음 하위 메뉴 항목을 선택하지만 반드시 하위 메뉴 항목 텍스트를 클릭하지 않고 하위 메뉴 항목의 BackColor 영역을 클릭하는 것으로 나타났습니다. 일부 MenuItem의 텍스트는 다른 텍스트보다 긴 경우, 짧은 텍스트가있는 MenuItem에는 다소 큰 BackColor 영역이 있습니다. 사용자가 BackColor 영역을 클릭 할 때 MenuItem Text에서 직접 클릭하지 않으면 사용자가 실제로 하위 메뉴 항목 히트 영역을 클릭하지 않았으므로 아무 일도 일어나지 않습니다.

표시된 MenuItem의 어떤 부분을 클릭 할 수 있는지에 대한 시각적 인 단서가 있지만 (마우스가 MenuItem Text에 배치되어있을 때 마우스 포인터가 링크 커서로 변경되지만 BackColor 위로 마우스를 가져갈 때가 아님) 이 동작으로 인해 사용자가 혼란스러워졌습니다. 그들은 MenuItem을 강조 표시하고 클릭했지만 아무 일도 없었습니다.

사용자가 MenuItem의 실제 텍스트를 클릭하지 않고 단순히 BackColor 영역을 클릭하더라도 MenuItem을 성공적으로 클릭하게하고 싶습니다.

표시된 MenuItems의 활성 영역 너비를 제어 할 수있는 속성이 있어야하는 것처럼 보이지만 표시되지 않습니다. 런타임에 이러한 MenuItems 중 일부를 작성하면 어떤 제안이 있습니까?

답변

2

추가 된 CSS 클래스 : .MenuClickArea {width : 100 %; 디스플레이 : 블록;} 및

트릭을 할 것으로 보인다 마스터 페이지 영문에서 문제의 메뉴 DynamicMenuItemStyle 및 StaticMenuItemStyle에 해당 클래스를 할당.

+0

매우 훌륭하고 매우 깨끗합니다 (일부 "다른 솔루션"은 각 메뉴 항목에 링크 버튼을 추가 한 솔루션과 같이 깨끗하지 못했습니다). 내 메뉴에는 동적 메뉴 항목 만 포함되어 있으므로 DynamicMenuItemStyle 만 설정하면됩니다. 그러나 정적 메뉴 항목이있는 경우 StaticMenuItemStyle을 추가해야 할 수도 있습니다. 다시 고마워요. 좋은 대답. –