Le contrôle ObjectDataSource (http://msdn.microsoft.com/fr-fr/library /9a4kyhcx%28v=vs.90%29.aspx) est un mécanisme pour la pagination personnalisée et peut gérer la pagination à travers une grande quantité de données. La pagination personnalisée garantit que seul l'ensemble précis d'enregistrements requis pour une page de données particulière est extrait de la base de données à la fois.
L'utilisation du contrôle ObjectDataSource est la suivante:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}" TypeName="ProductsBLL"
SelectMethod="GetProductsPaged" EnablePaging="True"
SelectCountMethod="TotalNumberOfProducts">
</asp:ObjectDataSource>
Le TypeName est le nom de la classe qui contient la GetProductsPaged et TotalNumberOfProducts fonctions. Une représentation possible de la classe ProductsBLL est la suivante:
public class ProductsBLL
{
public int TotalNumberOfProducts()
{
int recordCount = 0;
if (databaseObj.OpenDatabase())
{
recordCount = databaseObj.DBTotalNumberOfProducts(searchQuery);
databaseObj.CloseDatabase();
}
return recordCount;
}
public DataTable GetProductsPaged(int startRowIndex, int maximumRows)
{
DataTable pagedDataDV = null;
if (databaseObj.OpenDatabase())
{
pagedDataDV = databaseObj.DBGetProductsPaged(searchQuery, startRowIndex, maximumRows);
databaseObj.CloseDatabase();
}
return pagedDataDV;
}
}
La fonction DBTotalNumberOfProducts obtient le nombre total de lignes pour la requête présentes donné. La fonction DBGetProductsPaged obtient les données de la base de données pour la requête en utilisant MySQL LIMIT mot-clé. La LIMIT utilise les valeurs du startRowIndex et les variables maximumRows. La valeur du maximumRows sera une constante et devrait être la même que la taille de la page de la grille.
Les données peuvent être liés au contrôle du réseau en utilisant le code suivant:
GridData.DataSourceID = "ObjectDataSource1";
GridData.DataBind();
Le site suivant donnera plus d'informations sur le contrôle ObjectDataSource: http://msdn.microsoft.com/en-us/library/bb445504.aspx
Cela semble évident quand vous regardez ça :) Mon nouveau problème est que les contrôles de pagination ont disparu, vraisemblablement parce que seulement 10 enregistrements reviennent de chaque requête (PageSize = 10). –
C'est un problème différent. – MCain