oxayotl
Messages postés13Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 7 mai 2007
-
12 juil. 2006 à 12:36
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
12 juil. 2006 à 13:55
Bonjour,
j'ai créé dynamiquement deux LinkButton contenant des panels, labels...... J'ai voulu créer un évènement Command qui, avec l'aide d'un command argument, renvoi l'ID de mon LinkButton.
public void CreateEvents(){
...
LinkButton lkbEvent = new LinkButton();
lkbEvent.CssClass = "linkButtonEvent";
lkbEvent.CommandArgument = dtrEvent["ID"].ToString();
lkbEvent.Command += new CommandEventHandler(lkbEvent_Command);
Tout ça me permet de créer un nouveau panel contenant encore des labels... associé au LinkButton sur lequel j'ai cliqué.
Au premier chargement de ma page et ainsi qu'à chaque reload de la page, je réinitialise mes linkButton et je leur réaffecte le CommandEventHandler...
if (IsPostBack)
{
CreateEvents();
}
Dans mon évènement Command, je réinitialise un ID qui correspond à l'ID du LinkButton et qui me permet d'associer le bon panel avec le bon LinkButton.
void lkbEvent_Command(object sender, CommandEventArgs e)
{
IDEvent = int.Parse((string)e.CommandArgument);
CreateEvents();
}
Mon ID
public int IDEvent
{
get
{
if (_hdnIDEvent.Value == string.Empty)
return 0;
else
return int.Parse(_hdnIDEvent.Value);
}
set
{
_hdnIDEvent.Value = value.ToString();
}
}
Mon problème principal c'est que si à chaque clic, je repasse bien dans mon page_Load mais je ne passe pas forcément dans mon evenement Command.
Cela est très gênant car, pour l'utilisateur, cela ressemble à un clic pour rien, comme il ne repasse pas dans mon evenement Command, la variable ID n'est pas réinistialisé et donc le panel affiché reste le même. Ce n'est qu'au clic suivant que sera pris en compte le bon ID.
Cela me choque car, pour moi à chaque clic je devrais passer dans mon évènement...
Voilà, je ne sais pas si j'ai été très compréhensible car j'ai assez de difficultés à expliquer des problèmes aussi précis.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 12 juil. 2006 à 13:55
Bonjour,
je te conseille de te renseigner sur le cycle de vie des page web asp.net . Si tu rajoutes des controles à la volée tu DOIS les rajouter dans le page_init ou page_preinit sinon tu vas avoir des problèmes avec le viewstate et les événements.