2010-03-31 7 views
4

DataTable에서 열의 순서를 어떻게 표시 할 수 있습니까?C# : DataTable을 GridView에 바인딩 할 때 열 순서 변경

예를 들어, dataTable "dt"에는 두 개의 "a"와 "b"열이 있습니다. 나는 GridView에 다음과 같이 바인딩한다.

gridView.DataSource = dt; 
gridView.DataBind(); 

그러나 GridView가 "가장 먼저"(가장 왼쪽) 표시되도록하고 싶다. 하여, 나는 Excel로 내보내려면이를 사용하고 있는데 실제 출력이 화면에 없다 :

중점

HtmlTextWriter htw = new HtmlTextWriter(sw); 
gridView.RenderControl(htw); 

감사합니다!

답변

5

네, 프론트 엔드에서 할 수 있습니다. 이 라인을 따라 뭔가 :

<asp:GridView runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField DataField="b" /> 
     <asp:BoundField DataField="a" /> 
    </Columns> 
</asp:GridView> 

편집 :

말 아니 프런트 엔드? 그건 괜찮아 - 내가 도전 같은 :

  gridView.AutoGenerateColumns = false; 
     gridView.Columns.Add(new BoundField { DataField = "b" }); 
     gridView.Columns.Add(new BoundField { DataField = "a" }); 

(? 그것은 C# 3이 일을 가정하는 멋진 것은 그렇지 않은)

+0

감사합니다. 화면에 출력하지 않고 Excel 파일로 출력하지 않으므로 실제로 변경할 수있는 프런트 엔드가 없습니다. – Nir

+0

사람, 당신은이 솔루션으로 많은 문제를 해결했습니다. 단서가 없습니다. 고마워. ++ – Nir

+0

나를 위해 일하면 곤경에 처할거야! –

1

이 자주 인터뷰 질문에 온다. 테이블의 내용을 Excel 파일로 덤프하고 xl에서 html을 사용하고 있습니다. 하지만 데이터베이스 테이블의 내용을 가져 와서 메모리에 저장하려고합니다 (DataTable). 이 데이터가 커짐에 따라 서버에서 더 많은 메모리를 사용할 수 있습니다 (특히이 보고서에 대한 동시 요청이있는 경우)!

수정 사항 : 대신 DataReader를 사용하고 수동으로 GridView를 채 웁니다 (이 경우 게시 한 문제가 해결됨). Simple OOXML과 같은 것을 계속 사용하고 .xlsx 스프레드 시트의 XML 표현에 직접 데이터를 쓸 수 있습니다.

관련 문제