2011-04-13 4 views
10

GridView에서 하나의 열만 쉽게 오른쪽 정렬 할 수 있습니까?.NET GridView - 하나의 열만 오른쪽 정렬 할 수 있습니까?

는 내가 가진이

<asp:GridView ID="GridView1" runat="server"></asp:GridView> 

그것은 많은 열이 있습니다 (동적으로 생성 된) DataTable에 바인딩됩니다. 난 그냥 '가격'열을 오른쪽 정렬해야합니다.

예, 당신이 할 수있는

+0

를 사용하여 해결책을이다 가격 열의 오른쪽 맞춤 서식 파일 필드 가능한? – Shahin

답변

19

을 (. 내가 완벽하게 컨트롤 할 HTML을 사용하여. 나는 HTML <table>을 인쇄 대신의 GridView를 사용하는 경우는, 내가 궁금이 문제를 통해 오는),하지만 난 생각 AutoGenerateColumns이 true (기본값) 인 경우 RowDataBound 이벤트를 사용하여 열을 오른쪽 정렬해야합니다. 부수적으로, 더 쉬울 경우 AutoGenerateColumns을 false로 설정하고 BoundFields을 사용하면 더 많은 형식 지정 옵션을 제공하고 RowDataBound 이벤트가 필요하지 않게됩니다.

의 GridView :

<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" runat="server"></asp:GridView> 

Codebehind가 : 도움이

protected void GridView1_RowDataBound(object o, GridViewRowEventArgs e) 
{ 
    //Assumes the Price column is at index 4 
    if(e.Row.RowType == DataControlRowType.DataRow) 
     e.Row.Cells[4].HorizontalAlign = HorizontalAlign.Right; 
} 

희망.

+0

나는 그것이 매우 예쁘지 않을 것으로 예상했기 때문에 ... 예. AutoGenerateColumns가 GridView를 사용하는 이유입니다. 차라리 AutoGenerateColumns가 비활성화 된 GridView를 사용하는 것보다 HTML을 인쇄하고 싶습니다. 감사!그건 내 질문에 대답 :) – Aximili

+0

당신을 위해 일한 쿨, 다행! – rsbarro

12
<Columns> 
... 
    <asp:BoundField DataField="Price" HeaderText="Price" 
     ItemStyle-HorizontalAlign="Right" ItemStyle-Width="80" /> 
... 
</Columns> 
+1

이렇게하면 원하는 열의 서식을 지정하는 대신 추가 열이 추가됩니다. – Aximili

+0

마크 업에이 열을 추가하십시오. 코드 숨김에서 특정 작업을 수행하려는 특별한 이유가 없다면? – IrishChieftain

+2

이 방법을 사용하려면 AutoGenerateColumns를 false로 설정하고 마크 업의 모든 열을 수동으로 추가해야합니다. 단점은 많은 타이핑입니다. 위쪽은 코드 숨김을 사용하지 않고도 서식을 제어 할 수 있다는 것입니다. 개인적으로 BoundFields를 사용하는 것이 더 나은 방법이라고 생각합니다. – rsbarro

0

div의 ItemTemplate에 항목을 묶은 다음 div에 스타일을 설정하십시오.

<ItemTemplate> 
<div id="divReportName"> 
<asp:Label ID="lblReport" runat="server" ></asp:Label> 
</div> 
</ItemTemplate> 

// css for div 
#divReportName { text-align: left;} 
0

당신은이 같은

ItemStyle-를 사용하여 Boundfield 내에서 정렬을 수행 할 수 있습니다

<asp:BoundField DataField="SOH" HeaderText="SOH" SortExpression="SOH" ItemStyle-HorizontalAlign="Right"/> 
난 내있는 gridview에서 특정 열을 정렬하는 데 필요한 곳은 나를 위해 일한

0

GridView의 첫 번째 줄에 추가 했습니까?

1

오래 전 게시 한 질문이지만이 정보는 사용자가이 페이지로 이동하는 데 도움이 될 수 있습니다.

주어진 대답은 정렬을 적용 할 열의 인덱스를 미리 알고 있거나 .aspx 페이지의 디자인 타임에 열을 만든다고 가정합니다. 그러나 이것이 항상 그런 것은 아닙니다. 열이 자동되는 일반적인 솔루션을 찾고 사람을

사전에 알려져 있지 헤더 '가격'과 열의 인덱스를 생성, 여기

protected void grData_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     int i = ((DataTable)((GridView)sender).DataSource).Columns.IndexOf("Price"); 
     for (int j = 0; j < e.Row.Cells.Count; j++) 
     { 
      if (j == i) 
       e.Row.Cells[j].HorizontalAlign = HorizontalAlign.Right; 
      else 
       e.Row.Cells[j].HorizontalAlign = HorizontalAlign.Left; 
     } 
    } 
} 
관련 문제