Limitation de ligne et navigation de page en page dans une datalist

Résolu
bihannic_fr2000 Messages postés 8 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 22 mars 2006 - 15 mars 2006 à 11:12
bihannic_fr2000 Messages postés 8 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 22 mars 2006 - 15 mars 2006 à 17:17
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

cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
15 mars 2006 à 13:42
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
3
bihannic_fr2000 Messages postés 8 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 22 mars 2006
15 mars 2006 à 17:17
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
3
Rejoignez-nous