GridView Sortering, asp.net 2.0
Jeg har et gridview, hvori jeg indlæser data fra en DB via en ObjectDataSource. Der er fire sorterbare kolonner: Udstedelsesdato, Nummer, Forfaldsdato, Beløb.Kolonnen 'Nummer' indeholder ButtonFields, som hver især indeholder et link til en faktura.
Problem: Når siden vises første gang, står rækkerne sorteret efter Udstedelsesdato, og klikker man i rækken Nummer på den øverste, som er nummer 873324, så får man fat i faktura nummer 873324. Det er som det skal være - MEN: Sorterer man så tabellen på en anden måde, og så klikker på den øverste, som nu er nummer 863154, så får man STADIG fat i faktura nummer 873324. Det virker altså som om Gridview'et kun sorterer i udseendet, men ikke omstrukturerer linksene.
Koden:
-------------------------
<%@ Page Language="C#" %>
<script runat="server">
protected void VaelgFaktura(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = GridView1.Rows[index];
TableCell FakturaCell = selectedRow.Cells[1];
LinkButton knap = (LinkButton)FakturaCell.Controls[0];
Session["VisFakturaNr"] = knap.Text;
Response.Redirect("Faktura.aspx");
}
</script>
<asp:GridView
ID="GridView1"
runat="server"
DataSourceID="ObjectDataSource1"
AutoGenerateColumns="False"
OnRowCommand="VaelgFaktura"
AllowSorting="True"
EnableSortingAndPagingCallbacks="True"
>
<Columns>
<asp:BoundField ReadOnly="True" HeaderText="Udstedelsesdato" DataField="T5DOCD" SortExpression="T5DOCD"/>
<asp:ButtonField ControlStyle-ForeColor="blue" HeaderText="Nummer" DataTextField="T5DOCN" SortExpression="T5DOCN"/>
<asp:BoundField ReadOnly="True" HeaderText="Forfaldsdato" DataField="T5DUED" SortExpression="T5DUED"/>
<asp:BoundField ReadOnly="True" HeaderText="Beløb" DataField="T5BTOT" ItemStyle-HorizontalAlign="Right" HtmlEncode="false" DataFormatString="{0:F2}" SortExpression="T5BTOT"/>
</Columns>
</asp:GridView>
<!-- i GridView: HtmlEncode="false" fixer en bug i .NET2.0 vedørende DataFormatString -->
<asp:ObjectDataSource
ID="ObjectDataSource1"
runat="server"
SelectMethod="GetData"
TypeName="ClassFakturaliste"
>
</asp:ObjectDataSource>
