2011-08-31 5 views
0

의 특정 행은 내가 리피터를 가지고 dataItembound에 나는이편집하는 ASP 중계기

((HtmlTableRow)e.Item.FindControl("prodName")).Visible = false; 

같은 뭔가를이 그러나 보이지 않는 것으로 리피터의 모든 tablerows을 설정합니다. 나는 특정한 것을 숨기고 싶다. 이것을 할 수있는 방법이 있습니까?

을 Heres 설명에 전체 꼬마 도깨비

protected void RepeaterCategories_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     //Get category id 
     string catId = Request.QueryString["stctid"]; 
     //Call function to check stock levels in the next loaded category 
     bool stock = checkCategoryStockLevels(catId); 

     if(stock == true) 
     { 
      ((HtmlTableRow)e.Item.FindControl("catName")).Visible = false; 
      ((HtmlTableRow)e.Item.FindControl("catImg")).Visible = false; 
     } 
} 
+0

도움이 모든 덕분에 ... –

+1

나는 그것을 얻었다. (int repeaterCount = 0; count

답변

0

알겠습니다.

for (int repeaterCount = 0; count < repeaterID.Items.Count; count++) 
    { 
     Label label = (Label)repeaterID.Items[repeaterCount].FindControl("labelID"); 
     label.Text = "Text"; 
    } 

당신의 OnDataItemBound 이벤트의 모든 구현을 제시해주세요

0

당신은 페이지의 URL의 쿼리 문자열에서 카테고리 식별자를 검색합니다. 이 요청은 모든 Repeater 항목에 대해 동일한 값을 반환하므로 "catName"및 "catImg"HtmlTableRow가 숨겨집니다.

리피터에 바인딩 된 데이터 소스에 저장된 일부 값을 기반으로 행을 숨기려고한다고 가정합니다.

이렇게하려면 ItemDataBound 이벤트에서 DataItem에 액세스하고 행을 숨겨야하는 항목을 확인하는 검사를 수행해야합니다. 나는 리피터에 문자열 목록을 바인딩, 그래서 나는있는 DataItem의 값이 "항목 1"에 해당 ItemTemplate을에 단지 HtmlTableRow을 숨기고, 그래서 같은 검사를 각 항목에 액세스하고 수행 할 수있는 아래의

:

string dataItem = (string)e.Item.DataItem; 
if (dataItem == "Item 1") 
{ 
    ((HtmlTableRow)e.Item.FindControl("prodName")).Visible = false; 
} 

나는 당신이 DataRow 나 다른 어떤 객체와 같이 좀 더 복잡한 것을 바인딩한다고 가정합니다. 어느 쪽이든 프로세스가 동일하면 DataItem을 캐스팅하고 검사를 수행하십시오.

0

대신 특정 값을 기준으로 행 가시성을 결정하기 위해 데이터 키를 사용할 수 있으므로 ListView 또는 DataList를 사용합니다.