Mantener datos en control del MasterPage en ASP.NET [SOLUCIONADO]

Iniciado por novalida, 17 Noviembre 2010, 19:53 PM

0 Miembros y 1 Visitante están viendo este tema.

novalida

Hola,
no sé si esta pregunta iría en este foro o en en de desarrollo web, pero al tratarse de ASP.NET me parecía adecuado aquí. Si me equivoco, por favor, disculpad y movedme el post al foro pertinente.
Estoy haciendo un sitio web con que contiene varios web forms .aspx y una MasterPage.
En la MasterPage tengo un control TextBox donde se tecleará el nombre del producto a buscar y se pulsa un botón. Al pulsar el botón se carga el web form "busqueda.aspx" donde se ejecuta un procedimiento que carga el texto del MasterPage de la siguiente manera:


       Dim SourceTextBox As TextBox
       SourceTextBox = CType(Page.Master.FindControl("txt_busqueda"), TextBox)
       If Not SourceTextBox Is Nothing Then
           cadena = SourceTextBox.Text
       End If


El problema es que siempre se carga el valor por defecto del TextBox ("Buscar producto...") y no el nombre del producto a buscar.
Incluí ese código en el procedimiento Load del MasterPage para cambiar el valor del TextBox al que tenía en el formulario de origen, pero tampoco funciona.

Alguien me puede dar una idea o sabe qué puedo hacer???

Muchas gracias y un saludo :)

[D4N93R]

No tienes por qué hacer eso, el evento del textbox lo manejas en el mismo masterpage y luego saltas a busqueda.aspx y le pasas el parametro por querystring.

Un saludo!

novalida

Hola,
muchas gracias por responder.
Tienes toda la razón. Ya había intentado utilizando el método Request.QueryString pero algo hacía mal y no me daba cuenta qué era (he empezado esta semana con ASP.NET y no tengo nada de experiencia en desarrollo web). Ahora al probar de nuevo ha funcionado correctamente.
Al final, por si a alguien le sirve de ayuda, así queda el evento de la MasterPage:


Protected Sub btnbusqueda_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnbusqueda.Click
        Response.Redirect("busqueda.aspx?txtBusqueda=" + txt_busqueda.Text)
    End Sub


Y así queda la recogida de datos en el web form en el que se muestra la búsqueda:


cadena = Request.QueryString("txtBusqueda")



Muchas gracias por la ayuda y un saludo :)

[D4N93R]

Exacto! muy bien.

Y bueno, suele suceder cuando vienes de otra metodología.

Un saludo!