2009-09-29 3 views
4

내 gridview 열의 동작 및 정렬 방법을 편집 할 수있는 통합 위치가 하나 있습니다. 특히 headerrow를 보았습니다. 텍스트 값을 포함하는 특정 열이 있습니다.이 열은 정렬 된 값과 머리글이어야합니다. 다른 열은 정수를 포함하며 값과 머리글 모두 오른쪽 정렬되어야합니다.ASP.NET Gridview Internet Explorer의 가로 맞춤

"첫날에 나는 모든 것이 좋고 잘된 것 같았습니다. Firefox/Chrome은 정확히 원하는대로 보여 주었고 사용자는 모든 것을 보았습니다. (Explorer에서) (중앙 정렬 된 헤더).

나는 아무리 쓸모없는 해결책을 찾으려고 노력하면서 떨어져서 인터넷 검색을하면서 수많은 시간과 "sleepness night"을 보냈다.

왼쪽 정렬 할 머리글 셀과 오른쪽 정렬 할 다른 머리글 셀을 고유하게 식별 할 수 있습니까?

HeaderStyle-CssClass 및 ItemStyle-CssClass를 찾았습니다 (후자는이 특별한 경우에 흥미롭지 않습니다). 내가 CSS 파일

.HeaderStyle th { text-align: <value>; } 

그것은있을 수있는 다른 설정을 대체합니다에 정렬을 정의 할 때마다

문제입니다. 텍스트 항목은 왼쪽으로 정렬하고 숫자는 오른쪽으로 정렬하고 머리글은 포함 시키십시오.

문제가있는 영역 인 에 HeaderStyle-CssClass를 포함 시키면 아무런 문제가 없습니다. 나중에 지원 및 유지하는 것이 다소 번거로울 수 있습니다. 올바른 해결책은 정렬마다 정의해야하는 단일 위치 일 것입니다. 테마 폴더의 스킨으로이 작업을 수행 할 수 있습니까? 데모 용으로

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridviewAlignments.aspx.cs" 
Inherits="GridviewAlignments" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Testing GridView Alignment</title> 
    <style type="text/css"> 
     .LeftAlign 
     { 
      text-align: Left; 
     } 
     .NoneAlign 
     { 
      text-align: none; 
     } 
     .RightAlign 
     { 
      text-align: Right; 
     } 
     .JustifyAlign 
     { 
      text-align: justify; 
     }   
     .InheritAlign 
     { 
      text-align: inherit; 
     } 
     .HeaderStyle th 
     { 
      text-align: justify; 
     }  
    </style> 
</head> 
<body> 
    <form runat="server"> 
    <asp:GridView runat="server" ID="TestAlign" ShowFooter="True" DataSourceID="testDataSource" 
     Width="600" CssClass="HeaderStyle"> 
     <Columns> 
      <asp:BoundField DataField="left" HeaderText="-left-" 
       HeaderStyle-CssClass="LeftAlign" /> 
      <asp:BoundField DataField="none" HeaderText="-none-" 
       HeaderStyle-CssClass="InheritAlign" /> 
      <asp:BoundField DataField="right" HeaderText="-right" 
       HeaderStyle-CssClass="RightAlign" /> 
     </Columns> 
    </asp:GridView> 
    <asp:ObjectDataSource ID="testDataSource" runat="server" TypeName="TestData" SelectMethod="GetTestGridData"></asp:ObjectDataSource> 
    </form> 
</body> 
</html> 
+0

이 답변 주셔서 감사합니다 (왼쪽 또는 오른쪽)를 정렬 을 변경하려면 변경할 각 열에 대해 수평 정렬을 변경하고 싶습니다. 현재 귀하의 의견을 수렴하고 해결책을 찾고 있습니다. –

답변

0

당신은는 HeaderTemplate를 사용하여 시도?

<Columns> 
     <asp:TemplateField> 
      <HeaderTemplate></HeaderTemplate> 
     </asp:TemplateField> 
</Columns> 

저는 그것에 대해 잘 모르겠지만이 방법으로 다른 헤더에 대해 다른 클래스를 설정할 수 있다고 생각합니다. 내가 CSS 파일

.HeaderStyle th { text-align: <value>; } 

에 정렬을 정의 할 때마다

2

그것은있을 수 있습니다 설정 기타를 대체합니다. 선택기 .HeaderStyle th 그냥 .RightAlign보다 '별'이기 때문이다

. CSS에서는 선택자에 넣는 것이 많을수록 특정 '특정'규칙이 적용되고 특정 규칙은 덜 구체적인 규칙보다 우선 적용됩니다. 사양에서 exact rules을 볼 수 있습니다.

.RightAlign 선택기를 .HeaderStyle .RightAlign으로 변경하면 이제 .HeaderStyle th보다 구체적이며 '이깁니다'.

참고로 inherit은 IE에서 작동하지 않습니다.

5

헤더의 기본 스타일을 제공하기 위해 <th에 연결된 특정 CSS 클래스를 사용하는 대신 GridView의 HeaderStyle-CssClass 속성을 사용해야합니다.

.HeaderStyle { 
    text-align: justify 
} 

<asp:GridView runat="server" ID="TestAlign" ShowFooter="True" 
    DataSourceID="testDataSource" Width="600" 
    HeaderStyle-CssClass="HeaderStyle"> 
    <Columns> 
     <asp:BoundField DataField="left" HeaderText="-left-" 
      HeaderStyle-CssClass="LeftAlign" /> 
     <asp:BoundField DataField="none" HeaderText="-none-" 
      HeaderStyle-CssClass="InheritAlign" /> 
     <asp:BoundField DataField="right" HeaderText="-right" 
      HeaderStyle-CssClass="RightAlign" /> 
    </Columns> 
</asp:GridView> 
1

솔루션은 특정 BoundFields를 수행하게되었습니다.

텍스트 필드 : BoundField, NumberField : BoundField, 하여 DateField : BoundField

나는 this.HeaderStyle.CssClass = "TextBoundField"를 넣어 생성자에서; (또는이 특정 필드를 관리하는 CSS 항목) Cos this.ItemStyle.CssClass = "TextBoundField"도 있습니다.

그러면 CSS는 .TextBoundField {text-align : left; } (텍스트의 경우 숫자 및 날짜의 경우 오른쪽).

IE의 경우에도 작동합니다. ;)

thx 데이터 그리드 뷰의

0

이동하여 컬럼 속성은 선택 열 당신은