sábado, 6 de noviembre de 2010

ASP .net para Windows CE, C#

 

Aquí algunas notas útiles de código que he tenido que implementar:

NOTA1 -- FOCUS
En windows CE no hay propiedad de FOCUS, así que hay que hacerlo por java. Yo tenía el problema que requería que un control TEXTBOX obtuviera el Focus en cada reload de la página, pero como el textbox.focus() no funciona en windows CE, pues fue así:
Teniendo un Textbox llamado TBtarima , el _Load sería
protected void Page_Load(object sender, EventArgs e)
        {        
            ClientScript.RegisterStartupScript(GetType(), "setFocus",
                @"<script FOR=window EVENT=onload>
                document.form1.TBtarima.focus();
                <" + "/script>", false);
            
        }

NOTA2: Detectar ENTER de la tecla ó de un scanner (0x0d) en un control Texbox
El windows CE no permite usar PANEL para colocar un Default Button que se presione al detectar un ENTER, así que va de nuevo en Java
1) En el page load , agregar propiedad:
protected void Page_Load(object sender, EventArgs e)
        {
            TBtarima.Attributes.Add("onkeypress", "return clickButton(event,'" + Bmanda.ClientID + "')");
                   }
2) En el <head> de la página insertar la siguiente función script que es la que va a llamar al evento click del botón que teóricamente sería el default
  <script type="text/javascript">
       function clickButton(e, buttonid) {
           var evt = e ? e : window.event;
           var bt = document.getElementById(buttonid);
           if (bt) {
               if (evt.keyCode == 13) {
                   bt.click();
                   return false;
               }
           }
       }
    </script>

3) Luego en el <body> en la línea donde esté el botón tiene que mandar llamar en el evento onclick al procedimiento Bmanda_Click1 en este caso, esto se debe generar automático, ya que es a donde va a llamar el botón cuando se presione de manera “normal” como sino existiera el script.
<asp:Button ID="Bmanda" runat="server" Height="22px" Text="enter"  Width="31px" onclick="Bmanda_Click1" />

4) En el código la definición de la llamada sería
protected void Bmanda_Click1(object sender, EventArgs e)
        {
            tus funciones de envio_socket_etc();
        }

En resumen aquí lo que estamos haciendo es, detectar el ENTER en el textbox con la propiedad “onkeypress” agregada y esta llama a la función en Java que “presiona” el botón definido y este ya realiza su función normal.
Listo.



scanner windows ce socket asp net c# java onkeypress foco focus detectar detect enter mobile lxe mx7

 

No hay comentarios:

Publicar un comentario