2011-08-29 2 views
1

itemdatabound에 항목의 ID를 얻을 수 있도록 sqldatasource의 행에 액세스하려는 repeater가 있습니다.SQL 데이터 소스에서 각 행에 액세스하는 Asp repeater

숨겨진 필드를 사용하여이 작업을 수행 할 수 없습니다. 다른 옵션이 있습니까? 하여 ItemDataBound 시도에서 모든

+0

당신이 무엇을하려고 했습니까? 마크 업은 어떻게 생겼습니까? 숨겨진 것을 사용할 수 없다면 레이블이나 리터럴은 어떻게 될까요? –

답변

1

에 감사 :

((DataRowView)e.Item.DataItem)["YourKey"] 

있는 DataItem이 각인 아이템, 그것은 사용자 정의 클래스 또는 예를 들어 데이터 행합니다. 이것은 바인딩하는 방법에 따라 다르지만 지정하지 않았습니다.

if (Repeater1.DataSource != null) 
{ 
    int ID = ((DataTable)Repeater1.DataSource).Rows[e.Item.ItemIndex].Field<int>("ID"); 
} 

을 또는이 너무 작동 할 수 있습니다 :

+0

이것은 대단히 감사합니다. Adam –

2

당신은하여 ItemDataBound 이벤트에서 이런 식으로 뭔가를 시도 할 수 있습니다

int ID = (int)((DataRowView)e.Item.DataItem)["ID"]; 
+0

미안 제임스, 아담, 그냥 너에게 너무 베팅해라. 고마워요. 이것도 효과가 있었을 것입니다. –

+0

그런 다음 +1에 연결하십시오. :) –

+0

@ 웨슬리 스켄 : 걱정 마세요. 당신은 그것이 효과가 있다는 것을 의미합니다. –

관련 문제