Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con Input Text, asp:Label e instanciar clases

Estas en el tema de Problema con Input Text, asp:Label e instanciar clases en el foro de .NET en Foros del Web. Hola a todos, me presento soy anpiro! y espero ayudaros lo maximo al igual que vosotros a mi. He decubierto este foro a traves de ...
  #1 (permalink)  
Antiguo 30/11/2005, 05:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
Problema con Input Text, asp:Label e instanciar clases

Hola a todos, me presento soy anpiro! y espero ayudaros lo maximo al igual que vosotros a mi. He decubierto este foro a traves de un amigo y es muy interesante. Bueno ahi van mis dudas...

Tengo 2 problemas:
El primero , es que quiero reocger el valor de un Input (type text) e introducirlo en un asp:label, pero me da una excepcion del tipo "System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto." en la que creo que es porque el input no le pongo la propiedad de "runat = server"(con lo que no reconoce el objeto), pero no puedo ya que quiero que se ejecute en el cliente (dado que le hago unas modificaciones, las cuales no quiero que viajen al servidor).

Os pego mi codigo:
/*archivo confort.aspx.cs (codebehind)* - class Confort :.../

protected System.Web.UI.WebControls.Label Label4;
protected HtmlInputText grados;

Label4.Text = grados.Value; //Aqui me da la excepcion

/*archivo confort .aspx*/
<input value="20" style="WIDTH: 32px; HEIGHT: 22px" type="text" name="grados">

El segundo problema, es que quiero llamar un metodo de esta clase Confort en otra clase, pero me da la misma maldita excepcion

Os pego el codigo:

/*Principal.aspx.cs*/
public class Principal : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Bienvenido;
protected WebApplication1.Confort noticia; //webappliacation1 es el namespace

private void Page_Load(object sender, System.EventArgs e)
{
Bienvenido.Text ="Bienvenido " + User.Identity.Name;
noticia.escribirNoticias();
}
}

/*Confort.aspx.cs*/
public void escribirNoticias()
{
Response.Write("El confort de su hogar: Regulacion Automatica habilitada.");
}


Muchas gracias de antemano!

Pda: Creo que he encontrado un foro de programacion web de calidad!
  #2 (permalink)  
Antiguo 30/11/2005, 12:55
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
El primer _problema_, es porque no estás creando el objeto grados, simplemente lo estás declarando. No entiendo muy bien lo que quieres hacer.

Para la segunda pregunta, ten en cuenta que, para que puedas invocar sus métodos debes declararlos como estáticos (no necesitas crear una instancia) ó crear una instancia de esta clase y recién invocar a dicho método, en todo caso, creo que sería mejor que agrupes funcionalidad en otras clases y no te enredes con lo que tienes ahora.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 30/11/2005, 15:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por xknown
El primer _problema_, es porque no estás creando el objeto grados, simplemente lo estás declarando. No entiendo muy bien lo que quieres hacer.
Ok, muchas gracias ya no me da el error. El problema es que si lo creo con el new, estoy creando un nuevo objeto, sin embargo yo quiero llamar a uno que ya tengo creado.

Mi nuevo codigo es este:

protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.HtmlControls.HtmlInputText grados4 = new HtmlInputText();

Label4.Text = grados4.Value; //Pero grados4 no tiene ningun valor.

Lo que quiero conseguir es recoger el valor que hay en este input:
<input id = "grados4" value="20" style="WIDTH: 32px; HEIGHT: 22px" type="text" name="grados">

y mostrarlo en este label:
<asp:Label id="Label4" runat="server"></asp:Label>

Es decir el label deberia mostrar 20, una vez aprieto este boton:
<asp:button id="Button5" onclick="Aceptar_Click" runat="server" Text="Aceptar" style="Z-INDEX: 101; LEFT: 488px; POSITION: absolute; TOP: 640px"></asp:button>

En la funcion aceptar_click de la clase confort es donde tengo
Label4.Text = grados4.Value;

Muchas gracias y a ver si lo consigo!
  #4 (permalink)  
Antiguo 30/11/2005, 16:08
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Y porque no lo haces con un TextBox? o pones el atributo runat="server" en el elemento grados4? porque para que puedas acceder a las propiedades de éste, tienes que ponerle eso, caso contrario tendrías que hacerlo manualmente (forzar a que se renderize la función __doPostBack e invocarlo), para lo cual no creo que tenga sentido hacer eso...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 30/11/2005, 17:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
Ahi esta el problema amigo!!! No pongo un textbox porque el input lo utilizo en el cliente y lo modifico en el cliente. Es decir, es un input con un valor(20 por ejemplo) y al lado tengo 2 botones ("+" y "-") que lo que hacen es incrementar y decrementar este valor pero en el cliente (no quiero que vaya al servidor y el servidor devuelva el valor). Y ahí (cuando incremento o decremento el valor) es cuando quiero recoger el valor (por ej con valor 15 al decrementarlo 5 unidades). ¿Se me entiende?

¿Como podria utilizar el __dopostback que has mencionado?

Oye muchas gracias por ayudarme...

Pda: El segundo problema esta casi solucionado...gracias de nuevo ;)
  #6 (permalink)  
Antiguo 30/11/2005, 21:51
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
No sé donde ves el problema, yo no te digo que cada vez que presiones en tu botón "+" o "-" envíes al servidor, eso debes hacerlo (como me imagino que lo tienes implementado en este momento) con código de cliente, y recien enviar al servidor una vez que hayas terminado de hacer ese proceso.

Para tu segunda pregunta, ya se ha hablado varias veces sobre eso, asi que te sugiero que busques en el foro con el texto "__doPostBack".

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 01/12/2005, 01:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por xknown
No sé donde ves el problema, yo no te digo que cada vez que presiones en tu botón "+" o "-" envíes al servidor, eso debes hacerlo (como me imagino que lo tienes implementado en este momento) con código de cliente, y recien enviar al servidor una vez que hayas terminado de hacer ese proceso.
¿Como puedo hacer esto? Si pongo un textbox, no puedo hacer codigo en el lado del cliente, ya que este textbox requiere runat = server ¿no? No se lo que me propones...o no te he entendido bien...

Cita:
Iniciado por xknown
Para tu segunda pregunta, ya se ha hablado varias veces sobre eso, asi que te sugiero que busques en el foro con el texto "__doPostBack".
Saludos
Ok lo haré, a ver que tal...

Ah respecto a la segunda pregunta del principio...¿Puedo mostrar el valor de un objeto de un clase (por ejemplo el valor de : Label1.Text que se en encuentra en la clase confort (en el archivo confort.aspx.cs)) en otra clase (por ejemplo en la clase principal (que se encuentra en el archivo prioncipal.aspx.cs)).

Como ves llevo poco tiempo programando en c# y me cuesta un poco...pero estoy aprendiendo bste rapido, gracias por tu ayuda!

Última edición por Anpiro; 01/12/2005 a las 01:27
  #8 (permalink)  
Antiguo 01/12/2005, 15:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
¿¿¿¿xknown????
  #9 (permalink)  
Antiguo 01/12/2005, 19:03
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Cita:
Iniciado por Anpiro
¿¿¿¿xknown????
No estoy 24/7 en este foro. Así como tu tienes prisa por hacer eso, también tengo prisa por terminar mis cosas...
Cita:
¿Como puedo hacer esto? Si pongo un textbox, no puedo hacer codigo en el lado del cliente, ya que este textbox requiere runat = server ¿no? No se lo que me propones...o no te he entendido bien...
De donde sacas eso?
Cita:
Ah respecto a la segunda pregunta del principio...¿Puedo mostrar el valor de un objeto de un clase (por ejemplo el valor de : Label1.Text que se en encuentra en la clase confort (en el archivo confort.aspx.cs)) en otra clase (por ejemplo en la clase principal (que se encuentra en el archivo prioncipal.aspx.cs)).
Ya te indiqué una forma de hacer eso, aunque lo que quieres hacer es una pésima idea, como dije, agrupa funcionalidad en clases y trabaja de esa manera...
Cita:
Como ves llevo poco tiempo programando en c# y me cuesta un poco...pero estoy aprendiendo bste rapido, gracias por tu ayuda!
Te sugiero que empiezes a leer un poquito más.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #10 (permalink)  
Antiguo 02/12/2005, 02:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 102
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por xknown
No estoy 24/7 en este foro. Así como tu tienes prisa por hacer eso, también tengo prisa por terminar mis cosas...
Siento las molestias.

Cita:
Iniciado por xknown
De donde sacas eso?
Podrias decir como hacerlo pues, no te entendí cuando me lo explicaste. Si me pusieras un codigo como ejemplo? a lo mejor te entendería...Yo he intentado leer el valor del textbox en el cliente y no he podido. Ademas si es un textbox, ¿¿¿no tienes que ponerle obligado <asp:Textbox........runat=server>???

Cita:
Iniciado por xknown
Ya te indiqué una forma de hacer eso, aunque lo que quieres hacer es una pésima idea, como dije, agrupa funcionalidad en clases y trabaja de esa manera...
Cuando te lo vuelvo a explicar, o preguntar es porque no me enteré de la manera que me dices. Tampoco hace falta que digas que es una pésima idea. Se hace lo que se puede.

Cita:
Iniciado por xknown
Te sugiero que empiezes a leer un poquito más.

Saludos
Si supieras lo que estoy leyendo. Por ejemplo, me dijiste que buscara por el foro, el uso del __dopostback, efectivamente hay informacion, pero ningun post te explica realmente su utilizacion (tampoco ningun manual) Ayer estuve 5 horas dedicado a hallar su funcionamiento y aún no entiendo lo que hace.

De todos modos te estoy agradecido, como ya te he repetido en varias ocasiones, por tu ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.