2008-11-05 12 views

Répondre

1

définir l'index de la page courante comme le nombre de pages - 1.

+0

Oui, mais où peut-on trouver le nombre de pages et où pouvez-vous définir l'index de la page? –

1

Vous aurez besoin de connaître le nombre total d'enregistrements et le nombre d'enregistrements affichés sur une page.

This poste utile vous montre comment obtenir le nombre d'enregistrements:

private LinqDataSourceSelectEventArgs args; 
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
{ 
    args = e;   
    e.Result = new Database().Table.Whatever...      
} 

protected void LinqDataSource1_Selected(object sender, LinqDataSourceStatusEventArgs e) 
{ 
    this.label1.Text = args.Arguments.TotalRowCount + " records"; 
} 

Il y a d'autres discussions il y a une situation qui semble similaire à la vôtre.

+0

Cela nous fournira un nombre de lignes, et à partir de là nous pourrons déterminer le nombre de pages présentes, mais je ne vois toujours aucun moyen de définir l'index de la page. –

1

Je n'ai jamais fait cela, mais il y a plusieurs endroits où je chercherais à faire la modification que vous voulez: un gestionnaire OnSelecting pour la source de données, OnPreRender ou OnDataBinding pour le ListView, et OnPreRender pour le DataPager . Essentiellement, vous voulez traiter le cas de !IsPostBack d'une manière spéciale. Je regarderais d'abord le DataPager et verrais si vous pouvez trouver combien de pages il y a et le mettre à la dernière page. Vous devrez peut-être redéfinir la source de données après avoir défini la page sur celle que vous souhaitez. Après cela, je voudrais ajouter un gestionnaire OnDataBinding pour la ListView et voir ce que vous pouvez y faire. Je soupçonne que PreRender arrive trop tard pour que ListView ait un effet et OnSelecting, alors qu'il est bon pour le filtrage via une fonction basée sur une table, ne fera probablement pas grand chose dans ce cas.