begin process at 2008 07 20 13:38:46
1 213 234 membres
151 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DATALIST SUR UN TABLE SQL AVEC PAGINATION (AVEC C#)


Information sur la source

Catégorie :ASP.Net Niveau : Initié Date de création : 26/03/2002 Date de mise à jour : 26/03/2002 09:44:00 Vu : 8 277

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

En ASP c'etait assez facile de faire une page qui afficher 30 enregitrements par page avec en bas de la page des pitit boutton "Precedent" "Suivant" ou "Page1 Page2",etc... D'alleur en ASP, Nix nous a fais un bon code pour faire une pagination !!!! Et en ASP.NET cmt fait-on??? Ben c po tres compliquer !!!! Ca merche dans un WebForm (.aspx) ou un UserControl (.ascx) !!! Le Code est en C# (et non pas en VB.NET !)

Source

  • Puis le code scr C# (ps : il fo appeller la fonction Paging() dans le Page_Load()) :
  • public void Paging()
  • {
  • SqlConnection myConnection = new SqlConnection("server=SERVER;uid=USER;pwd=PASS;database=TABLE");
  • SqlDataAdapter myAdapter = new SqlDataAdapter("select * from news order by id DESC", myConnection);
  • DataSet ds = new DataSet();
  • int startRecord = ( int.Parse( CurrentPageType.Value ) - 1 ) *
  • int.Parse( PageSize.Value );
  • myAdapter.Fill( ds , startRecord , int.Parse( PageSize.Value ) , "News");
  • datalist.DataSource = ds.Tables["News"].DefaultView;
  • datalist.DataBind();
  • SqlCommand myCmd = new SqlCommand( "SELECT Count(*) from news", myConnection );
  • myConnection.Open();
  • TotalSize.Value = myCmd.ExecuteScalar().ToString() ;
  • myConnection.Close();
  • BuildPagers();
  • }
  • public void BuildPagers()
  • {
  • if( ( int.Parse( CurrentPage.Value ) - 1 ) <= 0 )
  • {
  • Prev.Enabled = false;
  • }
  • {
  • Prev.Enabled = true ;
  • }
  • if( ( int.Parse( CurrentPage.Value ) * int.Parse( PageSize.Value ) ) > int.Parse( TotalSize.Value ) )
  • {
  • Next.Enabled = false;
  • }
  • else
  • {
  • NextType.Enabled = true ;
  • }
  • }
  • public void Page_datalist( object sender, EventArgs e )
  • {
  • if( ((LinkButton)sender).ID == "Prev" )
  • {
  • if( ( int.Parse( CurrentPage.Value ) - 1 ) >= 0 )
  • {
  • CurrentPage.Value = ( int.Parse( CurrentPage.Value ) - 1 ).ToString() ;
  • }
  • }
  • else if( ((LinkButton)sender).ID == "Next" )
  • {
  • if( ( int.Parse( CurrentPage.Value ) * int.Parse( PageSize.Value ) ) < int.Parse( TotalSize.Value ) )
  • {
  • CurrentPage.Value = ( int.Parse( CurrentPage.Value ) + 1 ).ToString() ;
  • }
  • }
  • Paging();
  • }
  • Dans le scr HTML :
  • <asp:DataList id="datalist" runat="server" Height="35px" Visible="False">
  • <ItemTemplate>
  • <b><# DataBinder.Eval(Container.DataItem, "titre") %></B>
  • <p><%# DataBinder.Eval(Container.DataItem, "date") %></p>
  • face="Arial, Helvetica, sans-serif" size="-2">
  • <p><%# DataBinder.Eval(Container.DataItem, "news") %></p>
  • </ItemTemplate>
  • </asp:DataList>
  • <INPUT id="PageSize" type="hidden" value="30" name="PageSize" runat="server">
  • <INPUT id="CurrentPage" type="hidden" value="1" name="CurrentPage" runat="server">
  • <INPUT id="TotalSize" type="hidden" name="TotalSize" runat="server">
  • <asp:LinkButton id="Prev" onclick="Page_datalist" runat="server" Visible="False" Text="<< Precedent"><< Precedent</asp:LinkButton>
  • <asp:LinkButton id="Next" onclick="Page_datalist" runat="server" Visible="False" Text="Suivant >>">Suivant >></asp:LinkButton>
Puis le code scr C# (ps : il fo appeller la fonction Paging() dans le Page_Load()) :

public void Paging()
{
SqlConnection myConnection = new SqlConnection("server=SERVER;uid=USER;pwd=PASS;database=TABLE");
SqlDataAdapter myAdapter = new SqlDataAdapter("select * from news order by id DESC", myConnection);

DataSet ds = new DataSet();

int startRecord = ( int.Parse( CurrentPageType.Value ) - 1 ) *
int.Parse( PageSize.Value );

myAdapter.Fill( ds , startRecord , int.Parse( PageSize.Value ) , "News");
 
datalist.DataSource = ds.Tables["News"].DefaultView;
datalist.DataBind();

SqlCommand myCmd = new SqlCommand( "SELECT Count(*) from news", myConnection );
myConnection.Open();

TotalSize.Value = myCmd.ExecuteScalar().ToString() ;
myConnection.Close();
BuildPagers();
}

public void BuildPagers()
{
if( ( int.Parse( CurrentPage.Value ) - 1 ) <= 0 )
  {
     Prev.Enabled = false;
  }

 {
     Prev.Enabled = true ;
 }

if( ( int.Parse( CurrentPage.Value ) * int.Parse( PageSize.Value ) ) > int.Parse( TotalSize.Value ) )
 {
   Next.Enabled = false;
 }
else
 {
   NextType.Enabled = true ;
 }
}
public void Page_datalist( object sender, EventArgs e )
{
 if( ((LinkButton)sender).ID == "Prev" )
  {
    if( ( int.Parse( CurrentPage.Value ) - 1 ) >= 0 )
      {
          CurrentPage.Value = ( int.Parse( CurrentPage.Value ) - 1 ).ToString() ;
      }
   }
else if( ((LinkButton)sender).ID == "Next" )
  {
     if( ( int.Parse( CurrentPage.Value ) * int.Parse( PageSize.Value ) ) < int.Parse( TotalSize.Value ) )
      {
          CurrentPage.Value = ( int.Parse( CurrentPage.Value ) + 1 ).ToString() ;
      }
   }
Paging();
}


Dans le scr HTML :

<asp:DataList id="datalist" runat="server" Height="35px"  Visible="False">
<ItemTemplate>
<b><# DataBinder.Eval(Container.DataItem, "titre") %></B>
<p><%# DataBinder.Eval(Container.DataItem, "date") %></p>
face="Arial, Helvetica, sans-serif" size="-2">
<p><%# DataBinder.Eval(Container.DataItem, "news") %></p>
</ItemTemplate>
</asp:DataList>
<INPUT id="PageSize" type="hidden" value="30" name="PageSize" runat="server">
<INPUT id="CurrentPage" type="hidden" value="1" name="CurrentPage" runat="server">
<INPUT id="TotalSize" type="hidden" name="TotalSize" runat="server">
<asp:LinkButton id="Prev" onclick="Page_datalist" runat="server" Visible="False" Text="<< Precedent"><< Precedent</asp:LinkButton>
<asp:LinkButton id="Next" onclick="Page_datalist" runat="server" Visible="False" Text="Suivant >>">Suivant >></asp:LinkButton> 

Conclusion

Enfin voila !!! Le rappelle que tout ca a ete ecrit en C#!!! Si vous avez des prb seboss@lestoons.net ou un ptit message sur VBfrance !!! ps : si vous dev en C# g un projet sur VbFrance qui consiste a cree un server web HTTP !!! (nom du projet : ServerSeboss) !!!
Seboss &lt;seboss@lestoons.net&gt;
http://www.lestoons.net/
http://www.seboss.fr.st/
    Aucun commentaire pour le moment.

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS