none
Necesito ayuda con Boton + Gridview RRS feed

  • Pregunta

  • Hola a todos saben tengo un problema con un botón estoy trabajando en C# con ASP.NET y Sql Server (Que es de donde obtengo los datos). Les dejo una imagen del botón junto con el gridview.


    Resulta que ese botón buscar al escribir en el campo RUT el rut claro me sale que el registro no existe, y me refiero al 1ero. Les dejo la función del botón:

    protected void btnbuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {           
                    HddRut.Value = txtRut.Text;
              
                    HddCliente.Value = txtCliente.Text;
                    GridView1.PageIndex = 0;
            }
            catch (Exception er)
            {
                //lblError.Text = er.Message;
            }	
        }

    Pero en cambio si utilizo la siguiente función para el botón modificando unas lineas dentro del 'try' si me lo muestra.

    Les dejo el código. 

    protected void btnbuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (txtRut.Text.Length > 0)
                    HddRut.Value = txtRut.Text;
    
                    if (txtCliente.Text.Length > 0)
                    HddCliente.Value = txtCliente.Text;
                    GridView1.PageIndex = 0;
            }
            catch (Exception er)
            {
                //lblError.Text = er.Message;
            }	
        }	

    Una imagen del resultado:


    Como ven si lo toma, pero me quita la segunda utilidad que tenia junto con la 1era opción y era que la 1era opción luego de borrar lo que había escrito en el campo rut y luego pinchaba el botón 'buscar' me mostraba de nuevo el gridview por completo como estaba en  un principio. En cambio no pasa lo mismo con la 2da opción, la segunda opción me muestra ese resultado, pero si quiero que luego me muestre el gridview nuevamente como estaba en un principio no lo muestra. Eso seria todo, gracias, estaré atento a sus respuestas.

    • Editado M4uriXD jueves, 29 de marzo de 2018 13:22
    miércoles, 28 de marzo de 2018 18:05

Respuestas

  • Ah ok, perdió la función de "eliminar filtro".

    ¿Y si asigna null cuando la longitud de los textos es cero?

    if (casilla.Text.Length == 0)
    {
        HddRut.Value = null;
    }
    if (otraCasilla.Text.Length == 0)
    {
        HddLoOtro.Value = null;
    }

    Aunque no soy fanático de hacer eso porque nunca sé cuándo .Text será nulo  y me saltará una excepción ObjectNullReference.  Lo que gusto de usar es if (String.IsNullOrWhiteSpace(casilla.Text)) { ... }.

    Ah y nunca tenga un try..catch con el catch vacío.  Es de las peores cosas que puede usted hacer.


    Jose R. MCP
    Code Samples

    • Marcado como respuesta M4uriXD miércoles, 28 de marzo de 2018 21:33
    • Desmarcado como respuesta M4uriXD jueves, 29 de marzo de 2018 13:23
    • Marcado como respuesta M4uriXD jueves, 29 de marzo de 2018 16:18
    miércoles, 28 de marzo de 2018 19:53
    Moderador

Todas las respuestas

  • Ah ok, perdió la función de "eliminar filtro".

    ¿Y si asigna null cuando la longitud de los textos es cero?

    if (casilla.Text.Length == 0)
    {
        HddRut.Value = null;
    }
    if (otraCasilla.Text.Length == 0)
    {
        HddLoOtro.Value = null;
    }

    Aunque no soy fanático de hacer eso porque nunca sé cuándo .Text será nulo  y me saltará una excepción ObjectNullReference.  Lo que gusto de usar es if (String.IsNullOrWhiteSpace(casilla.Text)) { ... }.

    Ah y nunca tenga un try..catch con el catch vacío.  Es de las peores cosas que puede usted hacer.


    Jose R. MCP
    Code Samples

    • Marcado como respuesta M4uriXD miércoles, 28 de marzo de 2018 21:33
    • Desmarcado como respuesta M4uriXD jueves, 29 de marzo de 2018 13:23
    • Marcado como respuesta M4uriXD jueves, 29 de marzo de 2018 16:18
    miércoles, 28 de marzo de 2018 19:53
    Moderador
  • Mira lo hice de esta manera pero, no me toma nada a partir del 2do else-if

    protected void btnbuscar_Click(object sender, ImageClickEventArgs e)
        {
          if (txtRut.Text.Length > 0)
            {
                HddRut.Value = txtRut.Text;
            
            }
            else if (txtRut.Text.Length == 0)
            {
                HddRut.Value = null;
                GridView1.PageIndex = 0;
            }
          
            else if (txtCliente.Text.Length > 0)
                {
                    HddCliente.Value = txtCliente.Text;
                }
                else if (txtCliente.Text.Length == 0)
                {
                    HddCliente.Value = null;
                    GridView1.PageIndex = 0;
                }
            
    	}	
    ¿Que podría estar malo?

    • Editado M4uriXD jueves, 29 de marzo de 2018 13:14
    miércoles, 28 de marzo de 2018 20:05