Страница ASP.Net GridView UpdatePanel выдает ошибку при втором щелчке - PullRequest
0 голосов
/ 26 марта 2010

Я пытаюсь реализовать GridView с подкачкой внутри UpdatePanel. Все отлично работает, когда я делаю свой первый клик. Начинается пейджинг, и следующий набор данных загружается быстро. Однако, когда я пытаюсь щелкнуть ссылку для другой страницы данных, я получаю следующую ошибку:

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

    }

какие-либо подсказки о том, что вызывает ошибку при втором щелчке?

Ответы [ 2 ]

0 голосов
/ 09 июля 2013

Возможно, у вас есть UpdatePanel, некоторые данные, которые должны быть правильно отображены. Храните внутри UpdatePanel все, что вы изменяете и используете с этим элементом управления.

0 голосов
/ 26 марта 2010

Если что-либо на вашей странице, находящееся за пределами UpdatePanel, меняется после первого щелчка или пытается измениться, то при втором щелчке происходит другое, но ваши вызовы снова получили первое значение, потому что есть снаружи UpdatePanel и не получил значение обновления, просто получите первое снова -> Таким образом, вы получите ошибку при втором нажатии.

Возможно, у вас есть UpdatePanel, некоторые данные, которые должны быть правильно отображены. Храните внутри UpdatePanel все, что вы изменяете и используете с этим элементом управления.

Например, sSQL, где вы храните его? Его изменение? Может быть, другое значение изменяется при клике?

...