C # Bootstrap Pagination в стиле пейджера ASP.NET Gridview?

Я уже закончил с заголовком, элементом и нижним колонтитулом, но не с пейджером, используя Bootstrap 3.0

Не могли бы вы подсказать мне, как реализовать разбиение на страницы Bootstrap в стиле пейджера ASP.NET Gridview?

Пожалуйста помоги!

Дополнительная информация:::

Вот что я сделал до сих пор, добавив CssClass. Идеальное отображение таблицы с примененным стилем Bootstrap.

<div class="table-responsive">
        <asp:GridView ID="grdSearchAgreement" runat="server" CssClass="table table-hover"
            GridLines="None" AllowPaging="true" PageSize="2">
        </asp:GridView>
    </div>

А вот стиль разбивки на страницы, созданный из ASP.NET GridView. Это структура таблицы tr td.

<tr>
        <td colspan="7"><table>
            <tr>
                <td><span>1</span></td><td><a href="javascript:__doPostBack(&#39;ctl00$body$grdSearchAgreement&#39;,&#39;Page$2&#39;)">2</a></td><td><a href="javascript:__doPostBack(&#39;ctl00$body$grdSearchAgreement&#39;,&#39;Page$3&#39;)">3</a></td>
            </tr>
        </table></td>
    </tr>

Но обратитесь к документу о разбивке на страницы Bootstrap 3.0. Стиль может применяться только к ul li. https://getbootstrap.com/docs/3.3/components/#pagination

    <ul class="pagination">
  <li><a href="#">&laquo;</a></li>
  <li><a href="#">1</a></li>
  <li><a href="#">2</a></li>
  <li><a href="#">3</a></li>
  <li><a href="#">4</a></li>
  <li><a href="#">5</a></li>
  <li><a href="#">&raquo;</a></li>
</ul>

Как я могу изменить пейджер tr td, который генерируется с gridview на ul li ??


person Rabin Panichnok    schedule 27.08.2013    source источник


Ответы (9)


Я знаю, что это старое, но я нашел кое-что в стиле css, просто, легко и быстро

https://sufiawan.wordpress.com/2014/09/26/asp-net-use-bootstrap-pagination-on-gridview/

Я надеюсь, что это когда-нибудь спасет кого-нибудь.


Обновить:

* Если ссылка не работает:

Вы добавляете CSS

.pagination-ys {
    /*display: inline-block;*/
    padding-left: 0;
    margin: 20px 0;
    border-radius: 4px;
}

.pagination-ys table > tbody > tr > td {
    display: inline;
}

.pagination-ys table > tbody > tr > td > a,
.pagination-ys table > tbody > tr > td > span {
    position: relative;
    float: left;
    padding: 8px 12px;
    line-height: 1.42857143;
    text-decoration: none;
    color: #dd4814;
    background-color: #ffffff;
    border: 1px solid #dddddd;
    margin-left: -1px;
}

.pagination-ys table > tbody > tr > td > span {
    position: relative;
    float: left;
    padding: 8px 12px;
    line-height: 1.42857143;
    text-decoration: none;    
    margin-left: -1px;
    z-index: 2;
    color: #aea79f;
    background-color: #f5f5f5;
    border-color: #dddddd;
    cursor: default;
}

.pagination-ys table > tbody > tr > td:first-child > a,
.pagination-ys table > tbody > tr > td:first-child > span {
    margin-left: 0;
    border-bottom-left-radius: 4px;
    border-top-left-radius: 4px;
}

.pagination-ys table > tbody > tr > td:last-child > a,
.pagination-ys table > tbody > tr > td:last-child > span {
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px;
}

.pagination-ys table > tbody > tr > td > a:hover,
.pagination-ys table > tbody > tr > td > span:hover,
.pagination-ys table > tbody > tr > td > a:focus,
.pagination-ys table > tbody > tr > td > span:focus {
    color: #97310e;
    background-color: #eeeeee;
    border-color: #dddddd;
}

И просто используйте внутри grd

<PagerStyle CssClass="pagination-ys" />
person iYazee6    schedule 01.03.2015
comment
Здорово. Те, кто хочет выровнять пейджер вправо, могут добавить это в свой css: .pagination-ys > td:first-child { float: right; } - person Jamshaid K.; 12.10.2018

Мой ответ взят из предыдущего ответа iYazee6, что нового здесь, это улучшение макета css для разбивки на страницы, реализация его, а затем отображение результата.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"  CssClass="table table-striped table-hover"   OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="10">
    <PagerStyle HorizontalAlign = "Center" CssClass = "GridPager" />
...

css код:

.GridPager a,
.GridPager span {
    display: inline-block;
    padding: 0px 9px;
    margin-right: 4px;
    border-radius: 3px;
    border: solid 1px #c0c0c0;
    background: #e9e9e9;
    box-shadow: inset 0px 1px 0px rgba(255,255,255, .8), 0px 1px 3px rgba(0,0,0, .1);
    font-size: .875em;
    font-weight: bold;
    text-decoration: none;
    color: #717171;
    text-shadow: 0px 1px 0px rgba(255,255,255, 1);
}

.GridPager a {
    background-color: #f5f5f5;
    color: #969696;
    border: 1px solid #969696;
}

.GridPager span {

    background: #616161;
    box-shadow: inset 0px 0px 8px rgba(0,0,0, .5), 0px 1px 0px rgba(255,255,255, .8);
    color: #f0f0f0;
    text-shadow: 0px 0px 3px rgba(0,0,0, .5);
    border: 1px solid #3AC0F2;
}

результат:

введите описание изображения здесь

person Eng. Samer T    schedule 13.12.2016
comment
Хороший! Я выбрал этот ответ - person Fandango68; 25.09.2017

Просто немного измените ответы из этого вопроса и у вас есть красивый пейджер GridView, который поддерживает любую тему Twitter Bootstrap CSS.

Шаблон GridView:

<asp:GridView ... AllowPaging="true" PageSize="10">
  ...
  <PagerStyle HorizontalAlign="Center" />
  <PagerTemplate>
    <ul class="pagination">
      <asp:Repeater ID="Pager" ItemType="System.Int32" SelectMethod="GetPages" runat="server">
        <ItemTemplate>
          <li class='<%#((int)Item == this.GridView.PageIndex+1)? "active" : "" %>'>
            <asp:LinkButton CommandName="Page" CommandArgument="<%# Item %>"
                Text="<%# Item %>" runat="server" OnClick="PageIndexChanging" />
          </li>
        </ItemTemplate>
      </asp:Repeater>
    </ul>
  </PagerTemplate>
</asp:GridView>

Серверный код:

public IEnumerable<int> GetPages()
{
    return Enumerable.Range(1, GridView.PageCount);
}

protected void PageIndexChanging(object sender, EventArgs e)
{
    LinkButton pageLink = (LinkButton)sender;
    GridView.PageIndex = Int32.Parse(pageLink.CommandArgument) - 1;

    BindDataToGridView();
}

введите описание изображения здесь

person Vladislav    schedule 30.11.2018
comment
Я считаю, что это самое простое - person N Khan; 16.12.2019
comment
Согласен, ответ простейший и легкий в управлении. - person clamchoda; 26.01.2021

Вы можете предоставить PagerTemplate для элемента управления GridView. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.pagertemplate.aspx

person Andrey M.    schedule 27.08.2013
comment
Пожалуйста, укажите в своем ответе соответствующую информацию по вашим ссылкам. Если эти сайты изменятся или упадут, ваш ответ будет бесполезен для всех, кто будет двигаться дальше. - person MattD; 30.07.2015

Пагинация Bootsrap статична. Вы должны сделать его динамическим, чтобы добавить его в gridview, чтобы элементы пейджера генерировались в соответствии с количеством записей в gridview. Вам нужно написать код jquery, чтобы сделать его динамическим. Лучше всего использовать один из множества доступных плагинов jquery, например Bootpag.

Вот типичный пример как использовать разбиение на страницы в Bootstrap. в ASP.NET GridView.

person Priya    schedule 02.11.2013
comment
Пожалуйста, укажите в своем ответе соответствующую информацию по вашим ссылкам. Если эти сайты изменятся или упадут, ваш ответ будет бесполезен для всех, кто будет двигаться дальше. - person MattD; 30.07.2015

Результат iYazee6 вызывает проблемы с отображением в моей сетке. Для размещения пейджера требуется только первый столбец сетки, даже если html имеет значение colspan = "6" для сетки из 6 столбцов. Я не могу понять почему. Улучшенное решение GridPager css великолепно. Я добавил еще несколько CSS, чтобы использовать его, например, Bootstrap, то есть GridPager-info ИЛИ GridPager-Danger ИЛИ GridPager-Success, чтобы соответствующим образом изменить цвета.

CSS-фрагмент:

/***** GridPager-Danger *****/

.GridPager-Danger a,
.GridPager-Danger span {
    border: solid 1px #C60C30;
    background: #e9e9e9;
    color: #717171;
    
}

.GridPager-Danger a {
    background-color: #f5f5f5;
    color: #C60C30;
    border: 1px solid #C60C30;
}

.GridPager-Danger a:hover {
    background-color: #C60C30;
    color: #f5f5f5;
}

.GridPager-Danger span {
    background: #C60C30;
    color: #f0f0f0;
}



/***** GridPager-Success *****/

.GridPager-Success a,
.GridPager-Success span {
    border: solid 1px #3c763d;
    background: #eeffcc;
    color: #717171;
    
}

.GridPager-Success a {
    background-color: #eeffcc;
    color: #3c763d;
    border: 1px solid #3c763d;
}

.GridPager-Success a:hover {
    background-color: #3c763d;
    color: #f5f5f5;
}

.GridPager-Success span {
    background: #3c763d;
    color: #f0f0f0;
}

Вам просто нужно скопировать этот css вместе с GridPager css в файл GridPager.css и добавить этот код в свой html

<PagerStyle HorizontalAlign = "Center" CssClass="GridPager GridPager-Info" />

OR

<PagerStyle HorizontalAlign = "Center" CssClass="GridPager GridPager-Success" />

OR

<PagerStyle HorizontalAlign = "Center" CssClass="GridPager GridPager-Danger" />

Это может помочь кому-то, использующему Bootstrap

person Chaudhary Kaleem Ahmad    schedule 25.01.2017

Основываясь на сообщении iYazee6 выше из блога Юсуфа Сетиавана.

Я разделил a: hover и span: hover и увеличил ширину отступа, чтобы он отражался при наведении курсора мыши. Исходный отступ: 8px 12px. Также сделал шрифт жирным.

    .pagination-ys table > tbody > tr > td > a:hover,
    .pagination-ys table > tbody > tr > td > span:hover {
        padding: 8px 16px;
        color: #97310e;
        font-weight: bold;
        background-color: #eeeeee;
        border-color: #dddddd;
    }
person Chris Catignani    schedule 10.05.2018

это будет работать для bootstrap 4 rtl

добавить PagerStyle-CssClass = "bs4-aspnet-pager"

/*bs4-aspnet-pager*/
.bs4-aspnet-pager a,
.bs4-aspnet-pager span {
position: relative;
float: right;
padding: 6px 12px;
margin-right: -1px;
line-height: 1.42857143;
color: ##007bff;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}

.bs4-aspnet-pager span {
z-index: 3;
color: #fff;
cursor: default;
background-color: #007bff;
border-color: #007bff;
}

.bs4-aspnet-pager tr > td:first-child > a,
.bs4-aspnet-pager tr > td:first-child > span {
margin-right: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}

.bs4-aspnet-pager tr > td:last-child > a,
.bs4-aspnet-pager tr > td:last-child > span {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}

.bs4-aspnet-pager a:hover,
.bs4-aspnet-pager span:hover,
.bs4-aspnet-pager a:focus,
.bs4-aspnet-pager span:focus {
z-index: 2;
color: #23527c;
background-color: #eee;
border-color: #ddd;
}

.bs4-aspnet-pager td {
padding: 0;
}
/*end bs4-aspnet-pager */
person טאבו ישראל שרות ל    schedule 21.03.2018

Разметка HTML состоит из ASP.Net GridView. Для GridView я включил разбиение по страницам с помощью свойства AllowPaging, а также указал событие OnPageIndexChanging.

Код для привязки GridView к записям из таблицы Customers базы данных Northwind.

Чтобы стилизовать пейджер GridView, вам необходимо выполнить следующие действия.

Затем вам нужно назначить класс CSS пейджера странице с помощью свойства PagerStyle-CssClass, как показано ниже.

using System.Data;
using System.Data.SqlClient;
using System.Configuration;

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.BindGrid();
    }
}

private void BindGrid()
{
    string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    using (SqlConnection con = new SqlConnection(strConnString))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT * FROM Customers"))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
            }
        }
    }
}


<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
    RowStyle-BackColor="#A1DCF2" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000"
    runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPageIndexChanging">
    <Columns>
        <asp:BoundField DataField="ContactName" HeaderText="Contact Name" ItemStyle-Width="150px" />
        <asp:BoundField DataField="City" HeaderText="City" ItemStyle-Width="100px" />
        <asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="100px" />
    </Columns>
    <PagerStyle HorizontalAlign = "Right" CssClass = "GridPager" />
</asp:GridView>
<PagerStyle HorizontalAlign = "Right" CssClass = "GridPager" />


<style type="text/css">
    body
    {
        font-family: Arial;
        font-size: 10pt;
    }
    .GridPager a, .GridPager span
    {
        display: block;
        height: 15px;
        width: 15px;
        font-weight: bold;
        text-align: center;
        text-decoration: none;
    }
    .GridPager a
    {
        background-color: #f5f5f5;
        color: #969696;
        border: 1px solid #969696;
    }
    .GridPager span
    {
        background-color: #A1DCF2;
        color: #000;
        border: 1px solid #3AC0F2;
    }
</style>
person Fezal halai    schedule 16.02.2019