Как контролировать количество столбцов для автоматически сгенерированных полей gridview - PullRequest
3 голосов
/ 03 апреля 2012

У меня есть gridivew с автоматически сгенерированными полями, всякий раз, когда поступает новый набор данных, я добавляю сетку с данными.Есть ли способ установить ограниченные столбцы (например, 6), чтобы заставить пользователя перейти на следующую страницу?вместо того, чтобы продолжать добавлять, пока это не станет ужасно?

Пример:

enter image description here

таким образом, может быть класс (12 июля 2012 г.), класс (4 апреля 2013 г.)) и так далее ...

хотя я могу найти размер страницы, но не могу найти размер столбца!

Отредактировано:

enter image description here

Iудается добавить полосу прокрутки в нижней части сетки.Однако сетка с автоматически генерируемыми столбцами имеет тенденцию быть немного кластеризованной.(если вы заметили колонку с именем на втором рисунке).Может ли кто-нибудь помочь?

Код:

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

только когда я исправлю ширину сетки, дизайн будет выглядеть лучше.Но я не хотел бы фиксировать ширину моей сетки, учитывая, что поступает новый набор данных (долгосрочный)

1 Ответ

1 голос
/ 03 апреля 2012

Изменить коллекцию столбцов
Один из способов сделать это состоит в том, чтобы все необходимые столбцы уже были в вашем источнике данных, а затем просто измените коллекцию Columns вашей GridView. Так, например, у вас есть кнопка, которая добавляет столбец, и вы делаете это в событии клика:

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

Используйте прокручиваемый <div>
Как сказал alex в комментариях , другой способ сделать это - просто поместить прокручиваемый контейнер вокруг вашего GridView. Таким образом, вы можете разместить все столбцы, не занимая слишком много места на экране:

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

    </asp:GridView>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...