2012-04-03 8 views
3

私は自動生成フィールドを持つgridivewを持っています。新しいデータセットが来るたびに、グリッドにデータを追加します。ユーザーに次のページに移動するように制限された列(例:6)を設定する方法はありますか?それは超醜いまで追加し続ける代わりに?自動生成フィールドの列サイズの数を制御する方法gridview

例:私はページサイズを見つけることができますが

enter image description here

ので、グレード(2012年7月12日)、グレード(2013年4月4日)など....

があるかもしれません、しかし、私は列を見つけることができません!

編集は:

enter image description here

私は、GridViewのの一番下にスクロールバーを追加するために管理します。しかし、自動生成された列を持つグリッドは、ほとんどクラスタ化されない傾向があります。 (2番目の写真から名前の列に気づいた場合)。誰も助けることができますか?

コード:

<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> 

それは私が私のGridViewの幅を修正する場合にのみ、その後のデザインが良く見えるです。しかし、私は入ってくるデータの新しいセットを考慮し、私のグリッドの幅を固定したいのwouldnt。(長期)

+0

最初の3つの列が常に表示されるようにします(そして「Grade [date] )、またはすべての列をページしたいですか? – jadarnel27

+0

私はすべての列をページしたいですか?これは何度も繰り返すことができるからです。デザインは、「修正」位置を持つ代わりに左にスクロールするようなものになります。 –

+0

この状況では、水平スクロールバーを持つスクロール可能なコンテナにテーブルをラップします – Alex

答えて

1

これを行うには
一つの方法は、ある列コレクションの変更]列あなたのすべてを持っているだろうあなたのデータソースに既に必要な部分があり、GridViewColumnsコレクションを変更するだけです。だから、例えば、あなたが列を追加し、ボタンを持って、そしてあなたがそれでこれを行うには、クリックイベントです: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のまわりに置くだけです。この方法で、あまりにも多くの画面の不動産を占有することなく、そこにすべての列を持つことができます:

<div id="gridContainer" style="width:200px; overflow:scroll; height:auto;"> 
    <asp:GridView ID="GridView1" runat="server"> 

    </asp:GridView> 
</div> 
+0

スクロール可能なグリッドを使用します。ありがとう。 –

+0

@HuatsinYeo問題はありません。うれしいです! – jadarnel27

関連する問題