2012-04-03 3 views
3

자동 생성 필드가있는 gridivew가 있습니다. 새 데이터가 들어올 때마다 데이터가있는 표가 추가됩니다. 사용자가 다음 페이지로 이동하도록 제한된 열 (예 : 6)을 설정하는 방법이 있습니까? 슈퍼 추악 할 때까지 계속 붙이는 대신에?자동 생성 된 필드의 열 크기를 제어하는 ​​방법 gridview

예 : 따라서 enter image description here

가있을 학년 (2012 7월 12일), 학년 (4 년 4 월 2013)하고 있었다 등등 ....

내가 페이지 크기를 찾을 수 있지만

, 하지만 나는 열의를 찾을 수 없습니다!

편집 됨 :

enter image description here

나는있는 gridview의 하단에 스크롤 막대를 추가 할 수 관리 할 수 ​​있습니다. 그러나 자동 생성 된 열이있는 그리드는 약간 클러스터 된 경향이 있습니다. (두 번째 그림에서 이름 열을 발견하면). 어느 누구도 도움이 될 수 있습니까?

코드 : 내가 디자인이 좋아 보이는 다음 내 gridview에 폭을 고정 할 때

<asp:Panel ID="ScrollPanel" style="Width:1300px;" runat="server" ScrollBars="Horizontal"> 
        <asp:GridView ID="ViewAllHistory" runat="server" BorderWidth="1px" 
         CellPadding="2" CellSpacing="2" AllowPaging="True" BackColor="Black" 
         onpageindexchanging="ViewAllHistory_PageIndexChanging" PageSize="10"> 
         <RowStyle BackColor="White"/> 
         <FooterStyle BackColor="#CCCCCC" /> 
         <PagerSettings Position="TopAndBottom" /> 
         <PagerStyle HorizontalAlign="Center" BackColor="White" /> 
         <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
         <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> 
        </asp:GridView> 
        </asp:Panel> 

단지입니다. 그러나 내가 들어오는 데이터의 새로운 세트를 고려 내 격자의 폭을 수정하려는 wouldnt한다. (장기)

+0

처음 세 열을 항상 표시하려면 ("Grade [date]), 또는 모든 열을 페이징 하시겠습니까? – jadarnel27

+0

모든 열을 통해 페이지를 넘길 수 있습니까? 이것이 계속 될 수 있기 때문입니다. 디자인은 "수정"위치가 아니라 왼쪽으로 스크롤하는 것과 같습니다. –

+0

이 상황에서 가로 스크롤 막대가있는 스크롤 가능한 컨테이너에 표를 래핑하십시오. – Alex

답변

1

는 열 당신 '을 모두 가지고하는 열 수집이 작업을 수행하는
한 가지 방법을 것입니다 수정 데이터 소스에 이미 필요하고 GridView 컬렉션의 Columns 컬렉션을 수정하면됩니다. 그래서, 예를 들어, 당신이 열을 추가하는 버튼이 있고, 당신이 그것에 이렇게는 클릭 이벤트입니다 : alexin the comments 말했다 스크롤 <div>
으로

protected void Button1_Click(object sender, EventArgs e) 
{ 
    BoundField newCol = new BoundField(); 
    // This string needs to be the name of the column in your datasource 
    newCol.DataField = "Grade12July2012"; 
    // Whatever you want the column header to say 
    newCol.HeaderText = "Grade(12 July 2012)"; 
    GridView1.Columns.Add(newCol); 
    GridView1.DataBind(); 
} 

사용,이 일을하는 또 다른 방법이 될 것이다 GridView 주위에 스크롤 가능한 컨테이너를두기 만하면됩니다. 이렇게하면 너무 많은 화면 영역을 차지하지 않고 모든 열을 가질 수 있습니다.

+0

스크롤 가능한 격자를 사용하면 작동합니다. 고마워, 그래. –

+0

@HuatsinYeo 문제 없습니다. 도움이 되니 기쁩니다! – jadarnel27

관련 문제