2017-12-27 2 views
0

특정 뉴스 기사에 대한 사용자의 모든 의견을 표시하는 ListView이 있습니다.로그인 한 사용자가 댓글을 작성한 경우에만 삭제 버튼을 표시하는 방법은 무엇입니까?

덧글을 작성한 사용자도 삭제할 수 있도록 삭제 단추가 해당 사용자가 볼 수있는 주석 옆에 표시되어야합니다.

서버 태그에 <%= ... %>을 사용하여 visible 속성을 설정할 수 없다는 것을 고려하면 어떻게해야합니까?

비록 모든 ListView 항목을 반복하고 필요한 경우 버튼을 추가하지만 너무 번거롭고 더 좋은 방법이 있다고 생각합니다.

감사합니다.

+0

당신은 당신이보기에 코드를 보여줄 수, 당신의'ListView'의'ItemTemplate'에 보이는 속성을 설정 할 수 있어야한다 ? –

+0

당신이 옳은 길에 있다고 생각합니다. 당신은 각 행 OnRowDataBound (또는 유사하게, 나는 정확하게 이벤트를 잊어 버려야한다)를 통과해야하고, curr 사용자를 행의 사용자 ID와 비교하고 버튼을 표시하거나 숨 깁니다. – wazz

답변

0

ListView ItemDataBound 이벤트에 대한 가시성 논리를 구현해보십시오.

마크 업 :

<asp:ListView ID="lv" OnItemDataBound="ItemDataBound" /> 

코드 숨김

protected void ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     var deleteButton = (Button)e.Item.FindControl("DeleteButtonID"); 

     YourDataSource yourDataSource = e.Item.DataItem as YourDataSource; 
     deleteButton.Visible = yourDataSource.CanDelete; 
    } 
} 
관련 문제