![]() |
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 :molesto: 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! |
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 |
Cita:
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! :-( |
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 |
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 ;) |
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 |
Cita:
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)). Como ves llevo poco tiempo programando en c# y me cuesta un poco...pero estoy aprendiendo bste rapido, gracias por tu ayuda! |
¿¿¿¿xknown???? |
Cita:
Cita:
Cita:
Cita:
Saludos |
Cita:
Cita:
Cita:
Cita:
De todos modos te estoy agradecido, como ya te he repetido en varias ocasiones, por tu ayuda. |
| La zona horaria es GMT -6. Ahora son las 23:14. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.