2012-11-19 5 views
0

데이터 바인딩을 수행하기 전에 데이터 테이블에서 값을 제거해야 할 필요가있는 ""(string.empty) 값이 많은 200 개의 행이 있습니다.ASP.net 데이터 바인딩 비어 있지 않은 행

나는 배열을

내 DataList에 바인딩하는 방법을 데이터 모른다 : 나는 순간에 그것을 undertand에 할 수있는 아니에요 이후

<asp:DataList 
     id="list1" 
     runat="server"> 
     <ItemTemplate> 
     <cc1:SWCLabel 
      runat="server" 
      Text ='<%# Eval("myfield1")%>' 
       /> 
     </ItemTemplate> 
</asp:DataList> 

// My code behind 
DataView view = dt3.DefaultView; 
DataRow[] rows = dt3.Select("myfield1 <> ''"); 
... // Something here 

Plese이, 비 LINQ 솔루션을 도와주세요.

감사합니다.

답변

2

당신은 Linq를 사용할 수 있습니다

IEnumerable<DataRow> dataSource = dt3.AsEnumerable() 
     .Where(r => !string.IsNullOrEmpty(r.Field<string>("myfield1"))); 
list1.DataSource = dataSource; 
list1.DataBind(); 
+0

를 그것은 나에게 System.Data.DataRow 이름 "myfield1"와 속성을 포함하지 않는 것을 저에게 말을 런타임 예외가 발생합니다. – anmarti

+0

@senyortoni : 다시 'DataTable'으로 변환하면 동일합니까? 'list1.DataSource = dataSource.CopyToDataTable();'. 테이블에'myfield1 '이라는 이름의'DataColumn'이 실제로'string' 유형입니까? –

+0

예,이 필드가 포함되어 있으며 linq 필터없이 databind 할 때 충돌하지 않습니다. – anmarti

관련 문제