尝试在单击asp.net Gridview标题时进行排序

尝试在单击asp.net Gridview标题时进行排序,asp.net,entity-framework,c#-4.0,gridview,Asp.net,Entity Framework,C# 4.0,Gridview,我把我的代码和下面的所有步骤放在一起。 Asp.Net代码 下面的排序方法 谁能告诉我我做错了什么?当我单击“OnSort”方法时,它会调用函数,但不会更改任何内容。我检查了这里已经讨论过的所有教程,但是这个东西不起作用。我肯定我错过了一些非常小的细节plx帮助 <asp:GridView AllowSorting="true" ID="GrdSolicitacoes" runat="server" GridLines="None" AllowPaging="True" PageSize=

我把我的代码和下面的所有步骤放在一起。 Asp.Net代码

下面的排序方法

谁能告诉我我做错了什么?当我单击“OnSort”方法时,它会调用函数,但不会更改任何内容。我检查了这里已经讨论过的所有教程,但是这个东西不起作用。我肯定我错过了一些非常小的细节plx帮助

<asp:GridView AllowSorting="true" ID="GrdSolicitacoes" runat="server" GridLines="None" AllowPaging="True" PageSize="10" OnPageIndexChanging="GrdSolicitacoes_PageIndexChanging" OnSorting="gvShows_Sorting">
<Columns>
<asp:BoundField DataField="id" HeaderText="Cód." SortExpression="id </asp:BoundField>
 <asp:BoundField DataField="cns" DataFormatString="{0:dd/MM/yyyy}" HeaderText="CNS" SortExpression="cns" ></asp:BoundField>
<asp:BoundField DataField="nome" HeaderText="Nome do paciente" SortExpression="nome"  ></asp:BoundField>
<asp:BoundField DataField="data_nascimento" HeaderText="Data de nascimento" DataFormatString="{0:dd/MM/yyyy}" SortExpression="data_nascimento </asp:BoundField>
<asp:BoundField DataField="nome_mae" HeaderText="Nome da mãe" SortExpression="nome_mae"></asp:BoundField>
</Columns>
</asp:GridView>
private void populaGrid()
{
private ModelDataContext mdc;
mdc = new ModelDataContext();
        try
        {
            var pacientes = from pac in mdc.Tbl_Pacientes
                            select new
                            {
                                id = pac.id,
                                cns = pac.cns,
                                nome = pac.nome,
                                data_nascimento = pac.data_nascimento,
                                nome_mae = pac.nome_mae,
                                idAtendimento = 0

                            }; 
                GrdSolicitacoes.DataSource = pacientes;
                GrdSolicitacoes.DataBind();
        }
        catch (Exception ex) { Page.ClientScript.RegisterClientScriptBlock(GetType(), "alerta", "alert('Erro ao Consultar')" + ex.Message, true); }
        finally { mdc.Dispose(); }
    }
    private string ConvertSortDirection(SortDirection sortDirection)
    {
        string newSortDirection = String.Empty;
        switch (sortDirection)
        {
            case SortDirection.Ascending:
                newSortDirection = "ASC";
                break;

            case SortDirection.Descending:
                newSortDirection = "DESC";
                break;
        }
        return newSortDirection;
    }

    protected void gvShows_Sorting(object sender, GridViewSortEventArgs e)
    {
        Debug.WriteLine("sorting is called");
        var dataTable = Session["pacientes"] as DataTable;

        if (dataTable != null)
        {
            var dataView = new DataView(dataTable)
            {
                Sort = e.SortExpression + " " + ConvertSortDirection(e.SortDirection)
            };

            GrdSolicitacoes.DataSource = dataView;
            GrdSolicitacoes.DataBind();
        }
    }