2012-04-03 7 views
3

Ich habe eine gridivew mit automatisch generierten Feldern, wenn es eine neue Reihe von Daten kommt, werde ich das Gitter mit Daten anhängen. Gibt es eine Möglichkeit, eine begrenzte Anzahl von Spalten (z. B. 6) festzulegen, um den Benutzer zum Navigieren auf die nächste Seite zu zwingen? anstatt angehängt zu werden, bis es super hässlich ist?Wie die Anzahl der Spaltengröße für automatisch generierte Felder zu steuern gridview

Beispiel:

enter image description here

so könnte es Grade (12. Juli 2012), Grad (4. April 2013) und so weiter ....

sein, obwohl ich Seitengrße finden, aber ich finde keine Spaltengröße!

Edited:

enter image description here

Ich schaffe es am unteren Rand des Gridview eine Scrollbar hinzuzufügen. Das Gitter mit automatisch generierten Spalten ist jedoch tendenziell ein wenig geclustert. (wenn Sie die Namensspalte vom zweiten Bild bemerken). Kann jemand helfen?

Code:

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

es nur ist, wenn ich meine gridview Breite fixieren dann das Design besser aussieht. Aber ich würde mein Raster Breite unter Berücksichtigung neuer Satz von Daten kommen in korrigieren möchten. (Langfristige)

+0

Möchten Sie die ersten drei Spalten immer sichtbar sein (und nur durch die Spalten "Grade [date]' "Seite) oder möchten Sie alle Spalten durchblättern? – jadarnel27

+0

Ich möchte alle Spalten durchblättern, ist das möglich? weil das weitergehen könnte. das Design wäre wie eine Schriftrolle weiter nach links, anstatt eine "fixe" Position zu haben. –

+0

In dieser Situation würde ich die Tabelle in einen scrollbaren Container mit horizontaler Bildlaufleiste – Alex

Antwort

1

Ändern Sie die Spalten Sammlung
Eine Möglichkeit, dies zu tun ist, wäre alle Spalten haben Sie‘ benötigen Sie bereits in Ihrer Datenquelle, und dann ändern Sie einfach die Columns Sammlung Ihrer GridView. So zum Beispiel, haben Sie eine Taste, die eine Spalte ergänzt, und Sie tun dies in seiner Click-Ereignis:

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(); 
} 

Verwenden Sie einen rollbaren <div>
Wie alex sagte in the comments, ein anderer Weg, dies zu tun wäre, um nur einen scrollbaren Container um Ihre GridView zu legen. Auf diese Weise können Sie alle Spalten haben, ohne zu viel Bildschirm Immobilien zu nehmen:

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

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

wickeln Ich werde ein scrollbares Raster verwenden, dann sollte das funktionieren. Vielen Dank, ja. –

+0

@HuatsinYeo Kein Problem, froh, ich könnte helfen! – jadarnel27