У меня есть GridView на странице с включенной подкачкой страниц (сортировка не включена, не используется). События OnRowDataBound и OnPageIndexChanged назначаются.
<asp:GridView ShowHeader="False" ID="GV1" runat="server" AutoGenerateColumns="False" OnRowDataBound="gridView_RowDataBound" DataSourceID="SqlDataSource1" GridLines="None" CellPadding="0" PageSize="25" AllowPaging="True" OnPageIndexChanging="GV1_PageIndexChanging">
Источник данных назначается чуть ниже gridview как:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:my_connectionstring %>"></asp:SqlDataSource>
OnRowDataBound используется для отображения содержимого в отформатированном виде. Я не думаю, что это вызывает какие-либо проблемы:
Protected Sub gridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs).....
PageIndexChanging определяется следующим образом:
Protected Sub GV1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs)
GV1.PageIndex = e.NewPageIndex
GV1.DataBind()
End Sub
В части Page_Load вот как я заполняю источник данных. Это из пользовательского запроса, построенного в строке tempSqlStr:
SqlDataSource1.SelectCommand = tempSqlStr
If Not Page.IsPostBack Then
GV1.DataBind()
End If
Кажется, все работает, я получаю результаты, разбитые на 25 записей, я могу перемещаться по страницам. Но то, что я узнал, это то, что содержимое страниц меняется, когда я перемещаюсь между ними. Количество записей не меняется, но я вижу запись, которую я видел на первой странице снова через секунду, когда я возвращаюсь на первую страницу, а затем снова на вторую страницу, содержимое второй страницы изменяется, и я вижу другой набор записей.
Я напечатал значение tempSqlStr для всех страниц, оно одинаково на всех страницах (оно не в части "not page.ispostback").
Может ли это быть потому, что я создаю tempSqlStr в секции Page_Load, а GV1_PageIndex_Changing не может видеть значение? Если это так, то почему на следующих страницах показывается запись?
Любой комментарий приветствуется. Спасибо.