2010-04-18 1 views
1

GridView에 열이 10 개 있습니다. 특정 조건에서 "만료 날짜"라는 새 열을 추가하려고합니다. 문제는 사용자가 "검색"을 다시 누르면 (포스트 백) 열이 다시 추가된다는 것입니다.C# Gridview - 새 열을 추가 할 때 열이 이미 있는지 확인

BoundField dtExp = new BoundField 
          {DataField = "DateTimeExpired", HeaderText = "Expiration Date", DataFormatString = "{0:d}"}; 
if (!grid.Columns.Contains(dtExp)){grid.Columns.Add(dtExp);} 

그러나 문제는 열이 이미 존재하는 경우에도 반환 거짓 "포함"이다 :
나는 이미 존재하는지, 열을 추가하기 전에 확인.
내가 뭘 잘못하고 있니?

감사합니다.

답변

3

격자에 새로운 열이 있는지 확인하고 있습니다 (분명히 알지는 못했지만 아직 추가하지 않았습니다). 실제로 동일한 이름의 열이 있는지 여부를 확인하려고합니다. Columns을 반복하여 DataField == "DateTimeExpired"으로 확인하십시오.

+0

감사합니다, 그것을 작동 -하지만 거기에 이것에 대한 해결책 "내장"더를하지? – Nir

+0

@Nir; 아니. 일반적으로 열은 한 번만 추가되므로 문제가되지 않으며 추가 코드가 필요하지 않습니다. –

+0

좋아, 고마워, 마크. – Nir

4

당신은 열이 있는지 확인 <를 IEnumerable을 입력> 및 LINQ를 사용하는 Columns 캐스팅 할 수 있습니다

var gridBoundColumns = Grid1.Columns.OfType<BoundField>(); 
if(gridBoundColumns.Any(bf => bf.DataField.Equals(searchColumn.Name)) == false) 
{ 
    Grid1.Columns.Add(new BoundField{ ... }); 
} 
관련 문제