ASP.Net GridView UpdatePanel 分页在第二次单击时出现错误

问题描述 投票:0回答:2

我正在尝试在 UpdatePanel 内实现带有分页的 GridView。 当我第一次点击时,一切都很好。 分页开始并快速加载下一组数据。 但是,当我尝试单击另一页数据的链接时,出现以下错误:

Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。 服务器返回的状态码为:12030

aspx代码

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <contenttemplate>
        <asp:GridView ID="GridView1" runat="server" CellPadding="2" 
                AllowPaging="true" AllowSorting="true" PageSize="20"
                OnPageIndexChanging="GridView1_PageIndexChanging"
                OnSorting="GridView1_PageSorting"
                AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="ActivityLogID" HeaderText="Activity Log ID" SortExpression="ActivityLogID" />
                <asp:BoundField DataField="ActivityDate" HeaderText="Activity Date" SortExpression="ActivityDate" />
                <asp:BoundField DataField="ntUserID" HeaderText="NTUserID" SortExpression="ntUserID" />
                <asp:BoundField DataField="ActivityStatus" HeaderText="Activity Status" SortExpression="ActivityStatus" />
            </Columns>
        </asp:GridView>
    </contenttemplate>
</asp:UpdatePanel>

代码隐藏

    private void bindGridView(string sortExp, string sortDir)
    {
        SqlCommand mySqlCommand = new SqlCommand(sSQL, mySQLconnection);
        SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlCommand);
        mySqlAdapter.Fill(dtDataTable);

        DataView myDataView = new DataView();
        myDataView = dt.DefaultView;

        if (sortExp != string.Empty)
        {
            myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir);
        }

        GridView1.DataSource = myDataView;
        GridView1.DataBind();

        if (mySQLconnection.State == ConnectionState.Open)
        {
            mySQLconnection.Close();
        }

    }
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGridView();
    }
    protected void GridView1_PageSorting(object sender, GridViewSortEventArgs e)
    {

        bindGridView(e.SortExpression, sortOrder);

    }

有关第二次单击时导致错误的原因的任何线索吗?

asp.net gridview pagination
2个回答
0
投票

如果您的页面上有任何位于 UpdatePanel 之外的内容,在第一次单击后正在更改,或者尝试更改,则第二次单击时情况会有所不同,但您的调用确实再次获得了第一个值,因为有 UpdatePanel 之外的内容并且没有获得更新值,只需再次获取第一个 -> 因此在第二次单击时会产生错误。

您可能在 UpdatePanel 之外有一些需要正确呈现的数据。 将您更改并与此控件一起使用的任何内容保留在 UpdatePanel 中。

例如sSQL,您将其存储在哪里?它的变化?也许点击后其他值会发生变化?


0
投票

您可能在 UpdatePanel 之外有一些需要正确呈现的数据。将您更改并与此控件一起使用的任何内容保留在 UpdatePanel 中。

© www.soinside.com 2019 - 2024. All rights reserved.