チケットデータをロードするグリッドビューがあります。ユーザーの操作に応じて、このグリッドビューはさまざまな sqldatasources を読み込み、データを再表示します。
グリッドビューのマークアップは次のとおりです。
<X:GridViewX ID="gvxTaskList" runat="server"
    AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
    Width="100%" Height="100%" CssClass="tablestyle"
    OnRowCreated="gvxTaskList_RowCreated"
    OnPageIndexChanging="gvxTaskList_PageIndexChanging"
    OnSorting="gvxTaskList_Sorting">
だから、私には2つの問題があります。
まず、並べ替えイベントがまったく機能しません。データテーブルで null を取得します。コード:
protected void gvxTaskList_Sorting(object sender, GridViewSortEventArgs e)
{
    try
        {
            System.Data.DataTable dataTable = gvxTaskList.DataSource as  
                                                  System.Data.DataTable;
            if (dataTable != null)
            {
                System.Data.DataView dataView = new System.Data.DataView(dataTable);
                dataView.Sort = e.SortExpression + " " +   
                                    ConvertSortDirectionToSql(e.SortDirection);
                gvxTaskList.DataSource = dataView;
                gvxTaskList.DataBind();
            }
        }
        catch (Exception ex)
        {
        }
    }
    private string ConvertSortDirectionToSql(SortDirection sortDirection)
    {
        string newSortDirection = String.Empty;
        try
        {
            switch (sortDirection)
            {
                case SortDirection.Ascending:
                    newSortDirection = "ASC";
                    break;
                case SortDirection.Descending:
                    newSortDirection = "DESC";
                    break;
            }                
        }
        catch (Exception ex)
        {
        }
        return newSortDirection;
    }     
if (dataTable != null) で失敗するのは、それが null であるためです。
2 番目の問題は、ページングです。グリッドビューを最初にロードするとき、ページングは問題ありません。2 ページ分のデータ オンロードがあります。エラーなしで一日中ページを前後に移動できます。問題は、データソースを変更して 3 ページのデータを戻す場合です。最初のページからすぐに 3 ページをクリックしようとすると、前のデータ (2 ページ分) がリロードされます。どんな助けでも大歓迎です。