J'ai un formulaire sur ma page ASPX contenant divers contrôles disposés en utilisant la table. Il existe un "cboClients" DDL que j'ai besoin d'activer ou de désactiver en fonction du rôle dans le mode Edit. Le problème ici est que je ne suis pas en mesure d'obtenir ce contrôle en utilisant la méthode FindControl().Comment accéder à la liste déroulante de EditItemTemplate de FormView
J'ai essayé 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 databound se produit qu'une seule fois, mais pas lorsque le mode formview est modifié.
Quelqu'un peut-il me fournir une solution appropriée?
Merci de partager votre temps.
Merci Raj, mais j'ai aussi utilisé que. – IrfanRaza
Merci Raj, ça a marché pour moi. Mais pouvez-vous dire quelle est la différence entre lancer et utiliser l'opérateur "as"? – IrfanRaza
L'opérateur as est comme un cast sauf qu'il renvoie null en cas d'échec de conversion au lieu de déclencher une exception. http://msdn.microsoft.com/fr-fr/library/cscsdfbt(vs.71).aspx –