Comment accéder à la liste déroulante de EditItemTemplate de FormView
-
04-10-2019 - |
Question
J'ai un formview sur ma page ASPX contenant différentes commandes disposées en utilisant le tableau. Il y a un « cboClients » DDL que je dois activer ou désactiver en fonction de rôle que dans le mode Edition.
Le problème est que je ne suis pas en mesure d'obtenir ce contrôle à l'aide FindControl () méthode.
J'ai essayé le code suivant -
DropDownList ddl = null;
if (FormView1.Row != null)
{
ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
ddl.Enabled=false;
}
Même j'avé utilisé l'événement DataBound du même contrôle -
protected void cboClients_DataBound(object sender, EventArgs e)
{
if (FormView1.CurrentMode == FormViewMode.Edit)
{
if ((Session["RoleName"].ToString().Equals("Clients")) || (Session["RoleName"].ToString().Equals("Suppliers")))
{
DropDownList ddl = (DropDownList)sender;
ddl.Enabled = false;
}
}
}
Mais cet événement se produit qu'une seule fois databound, mais pas lorsque le mode formview est modifié.
Quelqu'un peut-il me fournir une solution appropriée?
Merci de partager votre temps.
La solution
Essayez l'événement ModeChanged. http://msdn.microsoft. com / fr-fr / bibliothèque / system.web.ui.webcontrols.formview.modechanged.aspx
mise à jour ..
Essayer cette
DropDownList ddl = FormView1.FindControl("cboClients") as DropDownList;
if (ddl != null) {
ddl.Enabled=false;
}