none
Obtener el valor de un campo con FindControl RRS feed

  • Pregunta

  • Sres:
    En una pagina .aspx quiero obtener el valor de un campo para reutilizarlo, lo intente con los ejemplos de Findcontrol pero siempre me devuelve "Nothing", quizas me esta faltando algo, o existe otra forma de capturar los valores de un control de una pagina web.

    gracias
    lunes, 11 de enero de 2010 18:13

Respuestas

  • Aca te pego un ejemplo que recupera desde código un textbox y un label. En el label te pone el contenido del textbox cuando le das click al boton.

    Código aspx de la página.
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <table>
           <tr>
            <td style="width: 237px">
                <asp:label ID="lbl" runat="server" TabIndex="1" />
            </td>
             <td style="width: 237px">
                <asp:TextBox ID="NOMBRETextbox" runat="server" TabIndex="1" />
             </td>
           </tr>
           <tr>
            <td rowspan=2>
                <asp:Button runat="server" ID="btnMessage" Text="Show textbox content"/>
            </td>
           </tr>
        </table>
        </form>
    </body>
    </html>
    
    Behind code:
    Partial Class _Default
        Inherits System.Web.UI.Page
    
        Protected Sub btnMessage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMessage.Click
            Dim lbl As Label
            Dim txt As TextBox
    
            lbl = Page.FindControl("lbl")
            txt = Page.FindControl("NOMBRETextbox")
    
            lbl.Text = txt.Text
    
        End Sub
    End Class
    
    Si creas una página nueva, pegas el código como te lo puse aca, te tiene que funcionar el findcontrol
    Sandro D. Garcia
    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta. ----- Please, if this message helps you, remember mark it as response, may be can help more people with same problem.
    • Marcado como respuesta Eduardo Alonso viernes, 15 de enero de 2010 2:40
    martes, 12 de enero de 2010 13:28

Todas las respuestas

  • El find control te busca dentro de los controles del padre. Habría que ver el código.

    Pero por ejemplo si tenes dentro de la página, un control grid y adentro algun control, y a nivel página tenes otro control por ejemplo un radio button. Y buscas dentro del grid el radio button, te va a devolver nothing.

    Fijate si te sirven estos Links 

    FindControl not Working

    FindControl Method


    Sandro D. Garcia
    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta. ----- Please, if this message helps you, remember mark it as response, may be can help more people with same problem.
    lunes, 11 de enero de 2010 18:35
  • Hola,

    si se trata de un objeto que estás creando dinámicamente, como supongo que es, puede ser que estés intentando acceder a él antes de que esté creado. Por ejemplo, si el objeto (TextBox) lo estás creando en el evento PreRender de la página e intentas acceder a él desde el evento Click de un botón o desde el mismo evento Load de la página, el método FindControl siempre te devolverá un Nothing.

    Si se trata de este problema, simplemente deberías crear los objetos dinámicos en el evento PreInit.

    Un saludo.
    lunes, 11 de enero de 2010 19:09
  • Sandro: Gracias pero no lo pude resolver, a continuación copie el codigo de la pagina

     <td style="width: 237px">
                       <asp:TextBox ID="NOMBRETextbox" runat="server" TabIndex="1" />
     </td>

    En el codigo del servidor escribi esto:

      StrB = StrB + Me.NOMBRETextbox.Text


    martes, 12 de enero de 2010 4:07
  • Alex:

    El objeto no se crea dinamicamente, sino que fue creado en tiempo de diseño, igualmente me sirve de mucho lo mencionado sobre el codigo dinamico.

    Saludos
    martes, 12 de enero de 2010 4:10
  • Aca te pego un ejemplo que recupera desde código un textbox y un label. En el label te pone el contenido del textbox cuando le das click al boton.

    Código aspx de la página.
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <table>
           <tr>
            <td style="width: 237px">
                <asp:label ID="lbl" runat="server" TabIndex="1" />
            </td>
             <td style="width: 237px">
                <asp:TextBox ID="NOMBRETextbox" runat="server" TabIndex="1" />
             </td>
           </tr>
           <tr>
            <td rowspan=2>
                <asp:Button runat="server" ID="btnMessage" Text="Show textbox content"/>
            </td>
           </tr>
        </table>
        </form>
    </body>
    </html>
    
    Behind code:
    Partial Class _Default
        Inherits System.Web.UI.Page
    
        Protected Sub btnMessage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMessage.Click
            Dim lbl As Label
            Dim txt As TextBox
    
            lbl = Page.FindControl("lbl")
            txt = Page.FindControl("NOMBRETextbox")
    
            lbl.Text = txt.Text
    
        End Sub
    End Class
    
    Si creas una página nueva, pegas el código como te lo puse aca, te tiene que funcionar el findcontrol
    Sandro D. Garcia
    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta. ----- Please, if this message helps you, remember mark it as response, may be can help more people with same problem.
    • Marcado como respuesta Eduardo Alonso viernes, 15 de enero de 2010 2:40
    martes, 12 de enero de 2010 13:28
  • Sandro :

    Gracias por el código funciona perfecto, la cuestión es que en el código que tengo utilizo un función de subgurim (google maps) y allí es donde deseo obtener el valor del control mencionado, me parece (opino sin mucha experiencia) que el resultado del findcontrol no funciona correctamente ya que el valor obtenido es = null, quizas los valores no estan viajando al servidor, bah, no sé estoy un poco perdido, pero ya lo solucionare, y comentaré que hice bien y mal.

    Gracias nuevamente
    viernes, 15 de enero de 2010 2:40