2012-11-27 4 views
0

리피터가 있습니다. 리피터는 내부에 UserControl을 Panel에 바인딩합니다. 패널에는 OnClick 이벤트가 있고 ItemCommand을 발생시킵니다. DataItem은 포스트 백 전체에서 지속되지 않으므로 ItemCommand 이벤트 중에 null이 될 것이라는 점을 알고 있습니다. 제 요구 사항은 JavaScript를 사용하지 않고 클릭했을 때 특정 usercontrol의 색상을 변경하는 것입니다. 누구나 아이디어가 있습니까?Repeater ItemCommand의 항목 강조 표시

+0

같이하여 ItemDataBound 이벤트에 특정 된 UserControls 온 클릭의 클래스 이름을 변경 시도 할 수 있습니다. – sajanyamaha

+0

_RepeaterCommandEventArgs_EnableViewState = "true"_가있는 경우 Repeater의 ItemCommand 이벤트에서 항목이 null이되지 않습니다. –

+0

@sajanyamaha 요구 사항입니다. – cherhan

답변

0

당신은 왜 wanat JS을 방지하기 위해 않는다 "자바 스크립트를 사용하지 않고"아래

protected void DataList1_ItemDataBound(object sender, 
          DataListItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || 
     e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     //Add eventhandlers for highlighting 
     //a DataListItem when the mouse hovers over it. 
     e.Item.Attributes.Add("onmouseover", 
       "this.oldClass = this.className;" + 
       " this.className = 'EntryLineHover'"); 
     e.Item.Attributes.Add("onmouseout", 
       "this.className = this.oldClass;"); 
     //Add eventhandler for simulating 
     //a click on the 'SelectButton' 
     e.Item.Attributes.Add("onclick", 
       this.Page.ClientScript.GetPostBackEventReference(
       e.Item.Controls[1], string.Empty)); 
    } 
} 
+1

하지만 사용자가 다른 항목을 클릭하면 이전에 강조 표시된 항목을 지우려면 어떻게해야합니까? 그게 내가 itemCommand에서하고 싶은 이유이다. – cherhan

관련 문제