Pregunta

Tengo un formview en mi página aspx que contiene varios controles organizados utilizando la tabla. Hay un DDL "cboClients" que necesito para activar o desactivado dependiendo de papel dentro de modo de edición.

El problema aquí es que no soy capaz de conseguir que el control utilizando el método FindControl ().

He intentado siguiente código -

     DropDownList ddl = null;
       if (FormView1.Row != null)
        {
            ddl = (DropDownList)FormView1.Row.FindControl("cboClients");
            ddl.Enabled=false;        
}

A pesar de que solía AVE caso DataBound del mismo control -

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;
            }
        }
    }

Sin embargo, este evento de enlace de datos se produce sólo una vez, pero no cuando se cambia el modo formview.

¿alguien puede proporcionar la solución adecuada?

Gracias por compartir su tiempo.

¿Fue útil?

Solución

Trate caso ModeChanged. http://msdn.microsoft. com / es-es / library / system.web.ui.webcontrols.formview.modechanged.aspx

actualización ..

Probar

DropDownList ddl = FormView1.FindControl("cboClients") as DropDownList;
if (ddl != null) {
  ddl.Enabled=false;        
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top