OnItemDataBound
이벤트를 처리하는 동안 리피터에서 항목 수를 얻으려고합니다. 나는 그것을 아주 간단하게하기 위해 노력하고있다. 나는 에을 의 마지막 항목에 숨기려고 노력하고 있습니다. 현재 ItemIndex
과 Items.Count
에 연결되어 있지만 OnItemDataBound
동안 색인과 개수가 함께 증가합니다.OnItemDataBound 중 리피터 항목 수 얻기
가 여기에 지금까지있어 무엇 :
Label myLabel = e.Item.FindControl<Label>("MyLabel");
if (myLabel != null)
{
// as the item index is zero, I'll need to check against the collection minus 1?
bool isLastItem = e.item.ItemIndex < (((Repeater)sender).Items.Count - 1);
myLabel.Visible = !isLastItem;
}
내가 바인딩 된 데이터 항목의 컬렉션에 DataSource
캐스팅 수 있다는 것을 알고있다, 그러나 OnItemDataBound
이벤트 핸들러가 여러 개의 중계기를 통해 사용하고, 그래서 약간 더 일반적인 것을 필요로 할 것입니다. 이 작동하는지 내가 확실하지 않다
if (e.Item.ItemIndex > 0)
{
var previousItem = ((Repeater)sender).Items[e.Item.ItemIndex - 1];
var previousLabel = previousItem.FindControl<Label>("MyLabel");
if (previousLabel != null)
{
previousLabel.Visible = true;
}
}
- 당신이 때까지 repeater.Items
에 액세스 할 수 몰랐 :
'첫 번째'항목에서 항목을 숨기려고하면이 기능이 작동하지만 '마지막'항목에서는 숨기려고합니다. :) – Richard
@Richard Yup ... 기본적으로'Visible'을'false'로 설정하면이 코드는 마지막 항목을 제외한 모든 항목에 대해 'true'로 설정합니다. (각 바인딩에서 _previous_ 라벨을 찾아서 보여줍니다.) – Rawling
아 물론 그렇습니다. 가능한 해결 방법입니다. 감사합니다. – Richard