none
Mostrar resultado en donde quiero RRS feed

  • Pregunta

  • Bueno tengo las paginas index.aspx, index.aspx.vb y en la parte del codigo (codeBehind) muestro un resultado de una consulta SQL, o sea tengo muchos respones.write() ya sea para mostrar una tabla, como texto y etc.. pero claro todo esto me lo tira arriba de la pagina y yo lo necesito en una parte especial de la pagina.

    Antes con ASP ponías todos los tags html y asp todo junto, pero ahora al separar lo html con el codebehind es distinto, no se como se hace para por medio del codeBehind poder mostrar los resultados donde yo quiero, capaz que la solución es por ejemplo en el codeBehind meter todo dentro de un tag <div> y luego en el index.aspx poner ese <div> en donde quiera que se vea el resultado.

    También seguro que debe haber un control que permite hacer eso, será el WebPartManager, WebPartZone, etc.

    Aunque ni idea como sería en este último caso. Gracias y espero me puedan ayudar.

    • Editado Damian E. _ lunes, 9 de septiembre de 2013 17:43 Saque el link de mi web ya que puede ser considerado como spam
    miércoles, 9 de junio de 2010 13:10

Respuestas

  • hola

    si tines un DataReader o un datatable, porque no usas el control GridView para presentar los datos

    es mil veces mas simple de usar, buscalo en la toolbox del VS

    con esto solo harias

        Nombre = Trim(UCase(Request.Form("Termino")))
        Cant = 0
        Response.Write("<br><br><br>")
        If MiConexion.State = Data.ConnectionState.Closed Then
          MiConexion.Open()
        Else
          MiConexion.Close()
        End If

        If rbInfo.Checked Then 'INFORMATICA

            SQL = "select Descripcion,Palabra from ABC where Palabra='" & Nombre & "'"

            Com = New SqlCommand(SQL, MiConexion)
                   
            Dim da As New SqlDataAdapter(Com)
            Dim dt As New DataTable

            GridView1.DataSource = dt
            GridView1.DataBind()

     

    asi de simple

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Damian E. _ jueves, 10 de junio de 2010 12:15
    miércoles, 9 de junio de 2010 14:13

Todas las respuestas

  • hola

    busca en la toolbox d controles de VS uno de nombre Label, o TextBox, arrastralos a diseñador del VS de la pagina

    luego desde tu codigo .net en el index.aspx.vb, usa el nombre que le has puesto a estos controles y asignales un valor

    Label1.Text = "texto prueba"

    veras que cuando visualizas la pagina en esta vera ese texto

    eso si esta asignacion realziala en el evento Page_Load

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 9 de junio de 2010 13:27
  • Entiendo lo que comentas, pero yo el resultado no lo muestro en un control particular, por ejemplo, pongo parte del código que tengo en el codeBehind, cuando se hace click en un boton de tipo <asp:Button> y como verás el resultado lo muestro en una tabla, como hago para poder ubicarlo en donde yo quiero?.
    Protected Sub ButBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButBuscar.Click
    
        'Try
        Nombre = Trim(UCase(Request.Form("Termino")))
        Cant = 0
        Response.Write("<br><br><br>")
        If MiConexion.State = Data.ConnectionState.Closed Then
          MiConexion.Open()
        Else
          MiConexion.Close()
        End If
    
        If rbInfo.Checked Then 'INFORMATICA
    
          SQL = "select Descripcion,Palabra from ABC where Palabra='" & Nombre & "'"
          'Com = New OleDbCommand(SQL, MiConexion)
          Com = New SqlCommand(SQL, MiConexion)
    
          Rs = Com.ExecuteReader
          If Rs.Read Then
            Response.Write("<table border=2 width=80% align=center bordercolor=#CCCCCC>")
            Response.Write("<tr>")
            Response.Write("<td width=15% align=center><b>" & Rs("Palabra") & "</b></td>")
            Response.Write("<td class=Descripcion>" & Rs("Descripcion") & "</td>")
            Response.Write("</tr>")
            Response.Write("</table>")
          Else
            Response.Write("<span class=Mensaje>El término '" & Request.Form("Termino") & "' no se encuentra en la sección Informática.</span>")
            Response.Write("<ul type=disc class=Color3> Pruebe las siguientes 2 opciones: <li>Verifique en otra sección.</li>")
            Response.Write("<li>Escriba el término de nuevo pero no elija ninguna sección.</li>")
            Response.Write("</ul>")
          End If
          Rs.Close()
          Rs = Nothing
        End If
    End Sub
    • Editado Damian E. _ lunes, 9 de septiembre de 2013 17:44
    miércoles, 9 de junio de 2010 13:47
  • Vale, te podrías declarar un div con la etiqueta runat="server" y su id..., con esto te será accesible desde el codebehind y podrás escribir su innerHtml a tu gusto...
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 9 de junio de 2010 13:49
    Moderador
  • Sabía que venía por ahí la cosa, ahora como sería la declaración, o sea en el codebehind y en el inde.aspx

    Por ejemplo en el codebehind, sería asi?:

    <div id="mostrar">

    'Aca todo el codigo a mostrar

    .......

    ......

    </div>

     

    Y luego para mostrarlo en el index.aspx en la parte que yo quiero lo debería llamar así?:

    <div id="mostrar">

    'Aca me tendría que traer todo el código del codebehind

    </div>

    Creo que algo me falta, ya que no se como debería poner con el innerHtml, donde va esto?. Gracias de nuevo.

    • Editado Damian E. _ lunes, 9 de septiembre de 2013 17:44
    miércoles, 9 de junio de 2010 14:03
  • En el fichero .aspx declaro donde gustes de la siguiente manera:

     

    <div id="mostrar" runat="server> </div>

     

    En el code Behind:

     'Try
      Nombre = Trim(UCase(Request.Form("Termino")))
      Cant = 0
      Response.Write("<br><br><br>")
      If MiConexion.State = Data.ConnectionState.Closed Then
       MiConexion.Open()
      Else
       MiConexion.Close()
      End If
    
      If rbInfo.Checked Then 'INFORMATICA
    
       SQL = "select Descripcion,Palabra from ABC where Palabra='" & Nombre & "'"
       'Com = New OleDbCommand(SQL, MiConexion)
       Com = New SqlCommand(SQL, MiConexion)
    
       Rs = Com.ExecuteReader
       If Rs.Read Then
        mostrar.innerHtml = "<table border=2 width=80% align=center bordercolor=#CCCCCC>")
        mostrar.innerHtml & =("<tr>")
        mostrar.innerHtml & ="<td width=15% align=center><b>" & Rs("Palabra") & "</b></td>")
        mostrar.innerHtml & ="<td class=Descripcion>" & Rs("Descripcion") & "</td>")
        mostrar.innerHtml & ="</tr>")
        mostrar.innerHtml & ="</table>")
       Else
        mostrar.innerHtml ="<span class=Mensaje>El término '" & Request.Form("Termino") & "' no se encuentra en la sección Informática.</span>")
        mostrar.innerHtml & ="<ul type=disc class=Color3> Pruebe las siguientes 2 opciones: <li>Verifique en otra sección.</li>")
        mostrar.innerHtml & ="<li>Escriba el término de nuevo pero no elija ninguna sección.</li>")
        mostrar.innerHtml & ="</ul>")
       End If
       Rs.Close()
       Rs = Nothing
      End If
    End Sub

     


    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    miércoles, 9 de junio de 2010 14:08
    Moderador
  • hola

    si tines un DataReader o un datatable, porque no usas el control GridView para presentar los datos

    es mil veces mas simple de usar, buscalo en la toolbox del VS

    con esto solo harias

        Nombre = Trim(UCase(Request.Form("Termino")))
        Cant = 0
        Response.Write("<br><br><br>")
        If MiConexion.State = Data.ConnectionState.Closed Then
          MiConexion.Open()
        Else
          MiConexion.Close()
        End If

        If rbInfo.Checked Then 'INFORMATICA

            SQL = "select Descripcion,Palabra from ABC where Palabra='" & Nombre & "'"

            Com = New SqlCommand(SQL, MiConexion)
                   
            Dim da As New SqlDataAdapter(Com)
            Dim dt As New DataTable

            GridView1.DataSource = dt
            GridView1.DataBind()

     

    asi de simple

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Damian E. _ jueves, 10 de junio de 2010 12:15
    miércoles, 9 de junio de 2010 14:13
  • Bueno lo del <div> no lo pude hacer andar, seguramente algo estoy haciendo mal.

    Con respecto al GridView tienes toda la razón, no se porque no se me ocurrio hacerlo de esa forma, mas que yo en las aplicaciones de escritorio lo utilice. Voy a probar con este control entonces, gracias.

    • Editado Damian E. _ lunes, 9 de septiembre de 2013 17:45
    jueves, 10 de junio de 2010 12:15