2013-06-17 6 views
0

"foreach"루프를 사용하여 변경 레이블 이름을 시도했지만 Visual Studio에서 오류를 반환했습니다.asp.net C# 레이블 이름 increse

방금 ​​"foreach"루프에서 레이블을 사용하려고 시도하고 쉽게 작업하고 싶었습니다. 코드는 이와 비슷합니다.

int i = 0; 

     foreach (string a in dr) 
     { 
      Label6.Text = dr.GetString(i).ToString(); 
      i++; 
     } 

왜 이런 식으로 사용할 수 없습니까?

Label[i], Label(i) or label{i} 

누구든지 어떻게 이런 식으로 사용할 수 있습니까? 지원에 감사드립니다 :

+1

'Label'이라는 이름의 배열이 즉시 없기 때문에. 그들 모두에는 별개의 이름이 있습니다. 컨테이너에 참조 된 컬렉션이 있지만, 솔루션을 제공하는 것보다 여기에서 설명 할 수있는 것이 더 많다고 생각합니다. 즉, 루프에 결함이 있다는 사실을 무시합니다. –

+0

이 예제에서 dr은 무엇입니까? 나는 그것이 DataRow 객체라고 추정한다. 무언가에서 데이터를 가져 와서 라벨에 넣으려고하십니까? – JonVD

+0

하지만 Label6, Label7, ..., Label12를 만들었습니다. 그리고 나는 Label [i + 6]과 같은 코드를 원합니다. –

답변

1

페이지의 레이블은 배열을 합성하지 않습니다. 라벨 6 개를 말하면 6 개의 다른 ID가있는 라벨이 6 개입니다. 그렇다고해서 FirstLabel, SecondLabel 등의 이름을 지정할 수 있습니다. 갑자기 배열처럼 액세스 할 수 없습니다. - 당신이 정말로 그 사실을 활용하여 그들에게 Label6 통해 Label1 어떤 이름 그러나 경우

당신은 FindControl 방법을 사용해 볼 수 있습니다 : FindControl가 순환하지

int i = 6; 
Label label = FindControl("Label" + i) as Label; 

하는 것으로를 - 당신이 레이블의 가장 가까운에 전화를해야 항상 페이지 자체는 아닙니다.

+0

그게 효과가! 고마워. –

관련 문제