La Web del Programador: Comunidad de Programadores
 
    Pregunta:  64062 - PROBLEMAS CON EL CONTROL CREATEUSERWIZARD
Autor:  Emilio José Quintana Castillejo
Buen día... Para empezar a explicar lo que me sucede digo que estoy utilizando la herramienta VisualWebDeveloper 2008 ExpressEdition. Para la aplicacion que estoy haciendo necesito manejar cuentas de usuario, por lo que utilizo el control CreateUserWizard para crear el nuevo usuario. Cabe aclarar tambien que la plantilla que uso para esta aplicacion la exporté desde un programa de diseño de plantillas llamado "Artisteer".

La plantilla la exporto del Artisteer con codigó C# y en Web Developer me muestra los content que crea para empezar a modificarle y a agregarle lo mio, de forma muy completa, me crea la pagina maestra (o principal) y todo. El problema se me presenta cuando arrastro el control CreaterUserWizard al content donde quiero que esté y en el evento "CreatedUser" del control escribo el siguiente codigo:

protected void CreateUserWizard1_CreatedUser1(object sender, EventArgs e)
{
Roles.AddUserToRole(CreateUserWizard1.UserName, "Miembros")
}

Esa linea de codigo que agrego es para que el usuario sea agregado a la funcion especificada. Pero al tratar de ver en el explorador lo que hize, me muestra un error de compilacion que dice:

"Mensaje de error del compilador: CS0103: El nombre 'CreateUserWizard1' no existe en el contexto actual"

Esto me sucede porque el control CreateUserWizard lo estoy colocando dentro de un articulo que no es mas que un marco que cree en el programa de diseño de plantilla. Aqui les muestro un poco de codigo para que me entiendan mejor:

<asp:Content ID="Content2" runat="server" contentplaceholderid="SheetContentPlaceHolder">

<artisteer:Article ID="Article1" Caption="BIENVENIDO" runat="server"><ContentTemplate>

<asp:CreateUserWizard ID="CreateUserWizard1"....

Como ven dentro del "SheetContent" está el "artisteer:Article" que no es mas que un marco que hace parte de la plantilla (creado en artisteer) y dentro de ese marco es donde coloco el control CreateUserWizar.

Me he dado cuenta que si coloco el control fuera de el "artisteer:Article" (pero por dentro del "SheetContent" obviamente) no me coloca problema y me funciona bien, pero eso no es lo que quiero, quiero que me salga dentro del marco que cree en el artisteer.

Yo apenas estoy empezando a trabajar con esta herramienta, no tengo experiencia trabajando en WebDeveloper ni en asp.net pero me imagino que el error me sale porque debo hacer referencia primero al objeto donde tengo el control (el "Artisteer:Article") y he aqui el problema: ¡he buscado y rebuscado en todas partes y no he encontrado la manera de hacer referencia a ese objeto!

Les agradeceria de corazon que me colaboraran con este percanse, si es lo que yo pienso o si no es lo que yo pienso, de verdad me seria de mucha ayuda..... Gracias y espero tu respuesta!!!

  Respuesta:  Alejandro Hernandez Acosta
Hola, te doy una idea, si es que te puedes referir al artisteer (nunca he trabajado con eso) dentro del codigo verifica el metodo FindControl del mismo, si lo tiene entonces puedes hacer un cast y hacer referencia al CreateUserWizard1

mas o menos esta seria la idea partiendo del codigo que pones:

((CreateUserWizard)(Article.FindControl("CreateUserWizard1"))).UserName

de esa forma tienes acceso a todas las propiedades y metodos que un control CreateUserWizard te brinda.

prueba con eso haber si resuelves.

suerte y un saludo