Principales respuestas
Obtener el valor de un campo con FindControl

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
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
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. -
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. -
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 -
-
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
-
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