GridView Пейджинг и сортировка - PullRequest
1 голос
/ 24 февраля 2012

У меня есть веб-управление GridView, в котором включены функции подкачки и сортировки. Я связал источник данных с SqlDataSource. Когда я пытаюсь изменить индекс или сортировку страницы, я получаю сообщение об ошибке «Запущено событие GridView [Sorting / PageIndexChanging], которое не было обработано». Разве SqlDataSource не оборудован для обработки этих событий?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@language = "C#" Debug="true" src="ServerCode/Default.cs" Inherits="Home.Default" %>
<html>
<head>
    <title>APTEIT Data Preview</title>
</head>
<body>
    <form id = "mainFrm" runat = "server">
        <div id = "headersDiv">
            <asp:Table id = "headerTbl" runat = "server">
            </asp:Table>
        </div>
        <div id = "dataDiv">
            <asp:GridView id = "dataTbl" runat = "server" 
                ShowHeader="false"
                AllowPaging="true"
                GridLines="None" 
                AlternatingRowStyle="altRow"
                PagerStyle="pager"
                PageSize="50"
                >
            </asp:GridView>
        </div>
    </form>
</body>
</html>

CodeBehind

SqlDataSource sqlData = new SqlDataSource("Hidden for security reasons");
Select(DataSourceSelectArguments.Empty);
dataTbl.DataSource = sqlData;
dataTbl.DataBind();
headerTbl.Rows.Add(new TableRow());

1 Ответ

3 голосов
/ 24 февраля 2012

Необходимо выполнить повторное связывание GridView:

private void BindData()
{
    SqlDataSource sqlData = new SqlDataSource("Hidden for security reasons");
    Select(DataSourceSelectArguments.Empty);
    dataTbl.DataSource = sqlData;
    dataTbl.DataBind();
    headerTbl.Rows.Add(new TableRow());
}

protected void dataTbl_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    dataTbl.PageIndex = e.NewPageIndex;
    BindData();
}

В разметке добавьте GridView:

OnPageIndexChanging="dataTbl_PageIndexChanging"

Это должно работать.

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