2012-09-04 3 views
0

ASP.NET의 기본 달력에 색상 변경 기능 이상의 마우스를 추가하려고합니다. 지금까지 다음 코드를 구현해 보았습니다.ASP.NET 달력의 날짜 강조 표시

Color col = new Color(); 
    col = Calendar1.DayStyle.BackColor; 
    if (col != Color.Empty) 
    { 
     e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';"; 
     e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='" + col + "';"; 
    } 
    else 
    { 
     e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';"; 
     e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='';"; 
    } 

날짜를 클릭하지 않으면 정상적으로 작동하는 것 같습니다. 그러나 날짜를 클릭하면 날짜 배경이 회색으로 변경되고 배경색이 분홍색으로 변경된 다음 다시 흰색으로 되돌아갑니다. 어떻게 든 그것을하기 때문에이 줄을 것 같습니다

col = Calendar1.DayStyle.BackColor; 

올바른 배경색을 선택하지 않습니다?

내가 여기에서 놓친 것이 있습니까?

+0

아니요, 이후 onmouserover 및 onmouseout 이벤트가 발생하여 분홍색이되고 흰색이됩니다. –

답변

0

프로그래밍을하지 않을 이유 :

Color col = new Color(); 
col = (e.IsSelected) ? Calendar1.SelectedDayStyle.BackColor.ToString() : Calendar1.DayStyle.BackColor.ToString(); 

e.Cell.Attributes["onmouseover"] = "this.style.backgroundColor='pink';"; 
e.Cell.Attributes["onmouseout"] = "this.style.backgroundColor='" + col + "';"; 

현재 하루 렌더링되는 선택 여부를 결정하기 만하면; IsSelected 속성이 있는지 확실하지 않습니다. 그렇지 않은 경우 e.IsSelected를 해당 작업으로 대체하십시오.

+0

필자는 왜 내 코드가 작동하지 않는지 깨달았다. Calendar1.DayStyle.BackColor는 선택되지 않은 날짜의 고정 배경색이기 때문입니다. 불행히도 이것은 새로운 문제는 마우스가 가리키는 셀을 식별하는 방법을 찾을 수 없다는 것을 의미합니다. 즉, onmouseout에서 한 색상을 표시하려는 셀과 다른 셀에서 다른 색상을 표시하려는 셀을 구별 할 수있는 방법이 없습니다. – Tony

+0

왜 안 되니? 선택되지 않은 셀과 선택된 셀에 대해 하나의 색만 원하십니까? 나는 왜 위의 해결책으로 문제가 해결 될지 모르겠다 ... –

+0

내가 원하는 것은 날짜 위에 마우스를 가져갈 때 배경색이 흰색에서 분홍색으로 바뀌고 마우스가 날짜를 벗어나 이동할 때 분홍색에서 흰색으로 바뀌는 것이다. . 그리고 선택된 날짜에 대해서도 똑같은 일이 있지만, 예를 들어 회색에서 분홍색으로 다시 회색으로 변합니다. 그러나 셀 자체를 마우스로 가리키면 선택한 셀과 선택되지 않은 셀을 구별 할 수있는 방법을 찾을 수 없습니다. – Tony

관련 문제