Limitation de ligne et navigation de page en page dans une datalist [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
22 mars 2006
-
Messages postés
8
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
22 mars 2006
-
Bonjour,

J'aimerais savoir comment limiter le nombre d'élément dans une datalist pour pouvoir afficher x éléments et avoir ensuite des boutons suivant/précédents pour naviguer dans les éléments...

Ca marchait tres bien avec une datagrid mais avec une datalist ca devient pas possible...

c'est mon dlQuitus.CurrentPageIndex qui n'existe pas.

merci pour votre aide

Page aspx:



<HeaderTemplate>
LDCG |
STATUT |

</HeaderTemplate>

----

<%# DataBinder.Eval(Container.DataItem, "LDAPKEY") %>,
<%# DataBinder.Eval(Container.DataItem, "STATDSI_LIBELLE") %>,

<EditItemTemplate>
----

' CssClass= "texteListe" Enabled=False Width="100%" MaxLength="9">
,

,
</EditItemTemplate>

&nbsp;

&nbsp;&nbsp;
" CommandArgument="next" runat="server" onClick="PagerButtonClick"
CssClass="texteParme" />
&nbsp;
>" CommandArgument="last" runat="server" onClick="PagerButtonClick"
CssClass="texteParme" />


Code Behind:


private void Page_Load(object sender, System.EventArgs e)
{


oOracleConn = new OracleConnection ();
oOracleConn.ConnectionString = ConfigurationSettings.AppSettings.Get("GEF_connectionstring");
oOracleConn.Open();


try
{
if(!IsPostBack)
{
Session["Column"] = "OUVERTE";
Session["Order"] = "DESC";
LoadData();
}
}
catch(Exception l_Exception)
{
Console.WriteLine(l_Exception.ToString());
}

}


private void LoadData()
{


int rcdCount;
string strExpr = "";
OracleCommand myCommand = oOracleConn.CreateCommand();

try
{
DataSet dsEffectif = new DataSet();
myCommand.CommandText="SELECT * FROM VW_QUITUS_2";

if (Session["Column"]!=null && Session["Order"]!=null)
{
strExpr = Session["Column"] + " " + Session["Order"] ;
}


if (ddlNOMPREN.SelectedItem.Value != "Sélectionner un collaborateur")
{
myCommand.CommandText = myCommand.CommandText + " WHERE LDAPKEY='" + ddlNOMPREN.SelectedItem.Value +"'";
}


if (ddlLDAPKEY.SelectedItem.Value != "Sélectionner un ldcg")
{
myCommand.CommandText = myCommand.CommandText + " WHERE LDAPKEY='" + ddlLDAPKEY.SelectedItem.Value +"'";
}

myCommand.CommandText = myCommand.CommandText + " order by " + strExpr;
System.Data.OracleClient.OracleDataAdapter daEffectif = new OracleDataAdapter(myCommand);
daEffectif.Fill(dsEffectif, "Quitus");

rcdCount = dsEffectif.Tables["Quitus"].Rows.Count;
resultCount = rcdCount;
try
{
dlQuitus.DataSource = dsEffectif;
dlQuitus.DataBind();
ddlSTATUT_Load();


}
catch
{

}


}
catch(Exception l_Exception)
{
Console.WriteLine(l_Exception.ToString());
}
finally
{
oOracleConn.Close();
}
}


public void PagerButtonClick(object sender, System.EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument;
string arg="";


switch(arg)
{
case "next":
if (dlQuitus.CurrentPageIndex < (dgQuitus.PageCount - 1))
{
dlQuitus.CurrentPageIndex += 1;
}
break;


case "prev":
if (dlQuitus.CurrentPageIndex > 0)
{
dlQuitus.CurrentPageIndex -= 1;
}
break;

case "last":
dlQuitus.CurrentPageIndex = (dgQuitus.PageCount - 1);
break;


default:
dlQuitus.CurrentPageIndex = Convert.ToInt32(arg);
break;
}


LoadData();
}



private void Prev_Buttons()
{
string PrevSet;


if ((dlQuitus.CurrentPageIndex+1 != 1) && (resultCount != -1))
{
PrevSet = dlQuitus.PageSize.ToString();
PrevButton.Text = (" < " + PrevSet);

if (dlQuitus.CurrentPageIndex+1 == dgQuitus.PageCount)
{
FirstButton.Text = ("<< 1st Page");
}
}

}


private void Next_Buttons()
{
//string NextSet;


if (dgQuitus.CurrentPageIndex+1 < dgQuitus.PageCount)
{
NextSet = dgQuitus.PageSize.ToString();
NextButton.Text = ("< Next " + NextSet);

if (dgQuitus.CurrentPageIndex+1 == dgQuitus.PageCount-1)
{
FirstButton.Text = ("<< 1st Page");
}
}

}

2 réponses

Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
salut,

Le paging n'est pas implémenté pour le composant Datalist (ni pour le repeater).
Il faut l'implémenter toi-même (tu trouveras plein d'examples via Google) ou te résoudre à utiliser une Datagrid.

yopyop
Messages postés
8
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
22 mars 2006

Merci yopyop ...

j'ai passé 1/2 seconde sur le site et le mot "paging" a fait merveille

Pour info pour ceux qui cherche tout est la (en C#):

http://www.aspfr.com/code.aspx?id=8784

a la prochaine