none
Visualizar y ocultar capas desde el codebehind RRS feed

  • Pregunta

  • Hola

    Tengo un usercontrol en el que tengo 3 capas. Las dos primeras capas son grillas y la tercera un formulario.

    Tiene que visualizarse solo la primera capa y cuando selecciono el botón de un registro de la grilla me tiene que mostrar la segunda capa que también contiene una grilla que se filtra segun lo seleccionado en la grilla anterior. Por último al seleccionar el botón de un registro de la grilla de la segunda capa me tiene que mostrar la tercera que contiene un formulario para cargar datos.

    En resumen, lo que necesito es que inicialmente aparezca una capa que al seleccionar un botón esta desaparezca y se visualice otra.

    en el RowCommand de la grilla de la primera capa tengo lo siguiente:

    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript1", "document.getElementById('capa1').style.visibility = 'none';");
    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript2", "document.getElementById('capa2').style.visibility = 'visible';");
    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript3", "document.getElementById('capa3').style.visibility = 'none';");

    esto no me funciona. Probé también hacerlo con el ScriptManager.RegisterStartupScript... pero tampoco me me funciona

    Intenté hacerlo con javascript pero cuando llamo a la función desde el OnClick del botón de la siguiente forma: OnClick="CambiarCapa1();" me da el siguiente error:

    Server Error in '/' Application.
    --------------------------------------------------------------------------------

    Compilation Error
    Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: CS1026: ) expected

    Source Error:
     
    Line 43:                         <ItemStyle HorizontalAlign="Left" />
    Line 44:                         <ItemTemplate>                           
    Line 45:                             <asp:LinkButton ID="linkResponsable" runat="server" OnClick="CambiarCapa1();" CommandName="Edit" CommandArgument='<%#  ((GridViewRow) Container).RowIndex  %>'><asp:Label ID="Responsable" runat="server" Text='<%# Bind("Responsable") %>'></asp:Label></asp:LinkButton>
    Line 46:                         </ItemTemplate>
    Line 47:                     </asp:TemplateField>
     
    Source File: c:\Documents and Settings\Administrator\Desktop\Nuevo\GridViewControl\GridViewControl\GridViewwControl.ascx    Line: 45

    Cómo podría corregir alguna de estas alternativas para que me funcione? Alguna idea?

    Desde ya muchas gracias, Saludos!



    viernes, 17 de febrero de 2012 15:52

Respuestas

Todas las respuestas

  • hola

    no entendi el concepto que aplicas por "capas" en la presentacion

    las capas son uan especie de wizard o de popup que debe ir levantando uno tras otro para mostrar informacion ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 17 de febrero de 2012 16:12
  • Hola Leandro

    Gracias por contestar

    cuando digo capas me refiero a las etiquetas <div>. Todo esto esta dentro de una webpart de sharepoint. Hay un menú que me muestra esta webpart donde esta todo este código y lo que necesitan es eso que al hacer click en un registro de la grilla de la primer capa me aparezca la segunda capa donde hay otra tabla con una grilla que se filtra de acuerdo a lo seleccionado en lo anterior. Luego en esta segunda grilla selecciono un registro y se me abre un formulario para modificar datos del registro seleccionado.

    En total son 3 div

    <div id=capa1 style="position:absolute; visibility:visible;">
    Grilla 1
    </div>

    <div id=capa2 style="position:absolute; visibility:none;">
    Grilla 2
    </div>

    <div id=capa3 style="position:absolute; visibility:none;">
    Formulario
    </div>

    Inicialmente se tiene que mostrar solo la primer capa. Y lo que tengo que estaba intentando hacer es que en el rowcommand de la primera grilla meter el código que indiqué anteriormente para que esta se oculte y solo muestre la segunda capa. Luego lo mismos en la segunda capa, al seleccionar un registro de la grilla, se oculte y muestre solo la tercer capa donde esta el formulario para modificar los datos según lo seleccionado en la grilla de la capa anterior.

    No es un proyecto con una aspx común donde pueda redireccionar a otra página. Como es una webpart tengo un espacio en el que tengo que hacer todo y por eso la idea de separar en las 3 capas. Quedaría algo parecido a una página cuando le damos a siguiente nos aparece otra y luego siguiente para terminar. Quedaría como me acabas de decir, como un tipo de wizard.

    Saludos!

    viernes, 17 de febrero de 2012 17:58
  • ya está! No me había dado cuenta que podía usar los controles Panel. Mucho mas fácil y rápido para lo que necesitaba :-)

    Saludos!

    viernes, 17 de febrero de 2012 19:38
  • Hola,

    Es correcto, toda la funcionalidad de ajax o jquery. Tambien tienes el control Accordion que te puede servir.

    Accordion Sample

    Saludos,



    Jason Ulloa
    Mi Blog San José, Costa Rica

    viernes, 17 de febrero de 2012 19:41