You are missing SortExpression's in your BoundField's
here i put the sample code for the sample
<asp:gridview id="gvOutlookMeldingen" runat="server" xmlns:asp="#unknown">
AllowSorting="True"
OnSorting="gvOutlookMeldingen_Sorting"
AutoGenerateColumns="False"
AutoGenerateSelectButton="True"
onselectedindexchanged="GridView_SelectedIndexChanged">
<columns>
<asp:boundfield datafield="Melder" headertext="Melder" sortexpression="Melder" />
<asp:boundfield datafield="Onderwerp" headertext="Onderwerp" sortexpression="Onderwerp" />
<asp:templatefield headertext="Omschrijving" sortexpression="Omschrijving">
<itemtemplate>
<div style="overflow:auto; width: 500px; height: 200px;">
<asp:label id="lblOmschrijving" runat="server" text="<%# Bind("Omschrijving")%>"></asp:label>
</div>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="Meldingsdatum" headertext="Meldingsdatum" sortexpression="Meldingsdatum" />
<asp:boundfield datafield="OutlookID" headertext="OutlookID" sortexpression="OutlookID" />
</columns>
</asp:gridview>
And from to the code behing put this...
protected void gvOutlookMeldingen_Sorting(object sender, GridViewSortEventArgs e)
{
switch (e.SortExpression)
{
case "Melder":
if (e.SortDirection == SortDirection.Ascending)
{
gvOutlookMeldingen.DataSource =
gvOutlookMeldingen.DataBind();
}
else
{
gvOutlookMeldingen.DataSource =
gvOutlookMeldingen.DataBind();
}
break;
}
}