Scour Design. Tutoriales de Flash, ActionScript, CSS, Photoshop, ImageReady...

\n"; } } } lecturas();

          


Parámetros GET de forma automática en DataGrid

      

Autor: Carlos Carmona

Algo muy común a la hora de mostrar un listado, es cargar un DataGrid con información básica y añadir un campo enlace que nos lleva a otra página donde se muestra la información detallada de ese registro. Pongamos el siguiente caso:

Tenemos un listado de usuarios, y un enlace que nos abre el detalle del usuario seleccionado, pero este enlace debe pasar 2 parametros via GET, por un lado el id que nos servirá para hacer la Select correspondiente en la página de detalle, y otra el estado que es un campo de la tabla usuarios que indica si el usuario está activo (1) o inactivo (0), ya que en la página de detalle se visionarán distintos campos y se podrán realizar distintas acciones dependiendo del estado del usuario. Por lo tanto, nuestros enlaces del DataGrid deben tener este formato:

Vámos a ello:

Arrastramos el DataGrid al escenario, lo seleccionamos y nos vamos al Generador de Propiedades:

Generador de propiedades

Nos vamos al apartado columnas, y allí:

Ésto es lo que tendríamos que hacer si solo quisiéramos un enlace por GET, sin embargo no podemos añadir un segundo enlace a través del Generador de Propiedades del DataGrid, para ello:

Creamos el datagrid y añadimos el primer parámetro por get

Como véis, la variable via GET (id) no tiene que tener el mismo nombre que la fuente de datos (id_usuario).

Bien, damos a aceptar y lo siguiente será editar la columna plantilla para añadir los demás enlaces:

Editamos la Plantilla para añadir el resto de enlaces

Seleccionamos el enlace en la nueva vista que aparecerá, nos vamos a sus propiedades, y hacemos click en el botón de la propiedad DataBindings, lo que nos abrirá la siguiente pantalla:

Edición del enlace

En esta nueva pantalla, seleccionamos la propiedad NavigateUrl y donde dice:

  1. DataBinder.Eval(Container, "DataItem.id_usuario", "detalle.aspx?id={0}")

Lo cambiamos por:

  1. DataBinder.Eval(Container, "DataItem.id_usuario", "detalle.aspx?id={0}") +
    DataBinder.Eval(Container, "DataItem.estado", "&estado={0}")

Añadimos las variables restantes

Y así vamos añadiendo el resto de variables que queremos cargar dinámicamente en el enlace del DataGrid.

Finalmente, todo lo anterior habtá añadido a nuestro DataGrid la siguiente columna Template:

  1. <asp:TemplateColumn>
  2. <ItemTemplate>
  3. <asp:HyperLink id=HyperLink1 runat="server" Text="Ver Detalle" NavigateUrl='<%#
    DataBinder.Eval(Container, "DataItem.id_usuario", "detalle.aspx?id={0}") +
    DataBinder.Eval(Container, "DataItem.estado", "&estado={0}") %>'
    >Ver Detalle
    </asp:HyperLink>
  4. </ItemTemplate>
  5. </asp:TemplateColumn>

Para más información consulte la referencia del MSDN.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)