[ASP.net] Sortexpression altijd leeg in templatecolumns

Pagina: 1
Acties:

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:45
Ik was even snel een datagridje in elkaar aan het zetten, met sorteermogelijkheden. Ik gebruik hiervoor template column met een sortexpression:
code:
1
2
3
4
5
6
7
8
<asp:TemplateColumn SortExpression="contractNumber">
    <HeaderTemplate>
        <asp:LinkButton ID="sortButton1" CommandName="sort" Runat="server">Contractnumber</asp:LinkButton>
    </HeaderTemplate>
    <ItemTemplate>
        <%# DataBinder.Eval( Container.DataItem, "contractNumber" ) %>
    </ItemTemplate>
</asp:TemplateColumn>
Als ik nu op een kolom klik, wordt de volgende code uigevoerd:
code:
1
2
3
4
5
private void contractGrid_SortCommand(object source, DataGridSortCommandEventArgs e)
{
    ViewState[ "sortField" ] = ( string )e.SortExpression;
    BindContractGrid();     
}
Tot mijn verbazing bleek het datagrid niet te sorteren, dus ben ik er met de debugger een aantal keren doorheen gelopen. Hieruit bleek dat e.SortExpression altijd een lege string is. Als ik hyperlinkcolumns of boundcolumns gebruik krijgt e.SortExpression wel een waarde. In de asp.net quickstart staat ook een voorbeeld van een datagrid dat sorteerbaar is met een templatecolumn ([url=http://localhost/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx#sorting]hier[/url] als je 'm geinstalleerd hebt). Hier ben ik ook met de debugger doorheen gelopen, en e.SortExpression van het templatecolumn is ook hier leeg, maar het datagrid sorteert wel!. Hier na heb ik een tweede templatecolumn aan dit datagrid toegevoegd, en toen sorteerde deze ook niet meer. Als laatste heb ik in mijn eigen project alle templatecolumns vervangen door boundcolumns, op 1 na. Nu sorteerd het datagrid wel perfect! Blijkbaar kan je maar maximaal 1 templatecolumn gebruiken als je erop wilt sorteren? Weet iemand hier meer over te vertellen?

[ Voor 5% gewijzigd door sig69 op 04-11-2004 10:10 ]

Roomba E5 te koop


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:40

gorgi_19

Kruimeltjes zijn weer op :9

TemplateColumn heeft een HeaderText property. Als SortExpression een waarde heeft, wordt van de HeaderText automatisch een link gemaakt en heb je hetzelfde effect als jij wil.

De HeaderTemplate kan je dan vervolgens verwijderen.

Ik gok dat je linkbutton niet gekoppeld is aan de sort-event handler en dat er daarom niet gesorteerd wordt.

[ Voor 14% gewijzigd door gorgi_19 op 04-11-2004 10:16 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 20:45
Je hebt gelijk, als ik het op die manier doe dan werkt het inderdaad ook prima. Vreemd dat het dan in de quickstart anders (incorrect) is opgenomen.

Roomba E5 te koop