ASP.NET - Condicionar uso de validadores en webform

   
Vista:
Imágen de perfil de Reinaldo

Condicionar uso de validadores en webform

Publicado por Reinaldo (3 intervenciones) el 30/04/2016 04:55:53
Cordial saludo.
Cómo puedo hacer para que los validator de esta página sólo se activen cuando deseo insertar un nuevo registro o para validar los datos a actualizar después de hacer clic en el botón?, si no los marco como comentarios apenas cargo los datos me muestra los mensajes del validator. Adjunto código:
Default.aspx.cs:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;
 
public partial class _Default : System.Web.UI.Page
{
    //cadena de conexion la declaramos a nivel de la clase para utilizarla en todos los eventos.
    SqlConnection cn = new SqlConnection("Data Source=(local)\\sqlexpress;Initial Catalog=clientes;Persist Security Info=True;User ID=sa;Password=admin+123");
 
    protected void Page_Load(object sender, EventArgs e)
    {
        this.cargardatos();
    }
 
    public void cargardatos()
    {
        //hacemos la consulta a la base de datos
        SqlCommand cmd = new SqlCommand("Select * from cliente", cn);
 
        //objeto adapter para hacer el enlace y llenado del dataset
        SqlDataAdapter adapter = new SqlDataAdapter();
 
        //asignamos la propiedad selectcommand al objeto command para que ejecute consulta
        adapter.SelectCommand = cmd;
 
        //abrimos la conexion
        cn.Open();
 
        //creamos objeto dataset
        DataSet objdataset = new DataSet();
 
        //llenamos el datable del dataset
        //el metodo fill obtiene los datos recuperados del dataadapter y los coloca dentro del dataset
        adapter.Fill(objdataset);
 
        //cerramos conexion
        cn.Close();
 
        //enlazamos los datos al griedvied
        GridView1.DataSource = objdataset;
        GridView1.DataBind();
    }
 
 
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        SqlCommand cmd_sel = new SqlCommand("select_cliente_ok", cn);
        cmd_sel.CommandType = CommandType.StoredProcedure;
 
        cmd_sel.Parameters.Add("@at_id_cliente", SqlDbType.Decimal);
 
        cmd_sel.Parameters.Add("@msj", SqlDbType.VarChar, 50);
        cmd_sel.Parameters["@msj"].Direction = ParameterDirection.Output;
 
        cmd_sel.Parameters["@at_id_cliente"].Value = Convert.ToDecimal(txtBusCC.Text);
        //cmd_sel.Parameters["@msj"].Value = null;
 
        cn.Open();
        cmd_sel.ExecuteNonQuery();
        SqlDataReader reader = cmd_sel.ExecuteReader();
 
 
        if (reader.Read())
        {
            txtId.Text = Convert.ToString(cmd_sel.Parameters["@at_id_cliente"].Value);
            txtNom.Text = reader.GetString(0);
            txtDir.Text = reader.GetString(1);
            txtTel.Text = reader.GetString(2);
            lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);
            reader.Close();
        }
        else
        {
            lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);
        }
 
        this.cargardatos();
    }
 
 
 
    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        SqlCommand cmd_sel = new SqlCommand("actualiza_cliente3", cn);
        cmd_sel.CommandType = CommandType.StoredProcedure;
 
        cmd_sel.Parameters.Add("@at_id_cliente", SqlDbType.Decimal);
        cmd_sel.Parameters.Add("@at_mod_id_cliente", SqlDbType.Decimal);
        cmd_sel.Parameters.Add("@at_nom", SqlDbType.VarChar);
        cmd_sel.Parameters.Add("@at_dir", SqlDbType.VarChar);
        cmd_sel.Parameters.Add("@at_tel", SqlDbType.VarChar);
 
        cmd_sel.Parameters.Add("@msj", SqlDbType.VarChar, 50);
        cmd_sel.Parameters["@msj"].Direction = ParameterDirection.Output;
 
        cmd_sel.Parameters["@at_id_cliente"].Value = Convert.ToDecimal(txtBusCC.Text);
        cmd_sel.Parameters["@at_mod_id_cliente"].Value = Convert.ToString(txtId.Text);
        cmd_sel.Parameters["@at_nom"].Value = Convert.ToString(txtNom.Text);
        cmd_sel.Parameters["@at_dir"].Value = Convert.ToString(txtDir.Text);
        cmd_sel.Parameters["@at_tel"].Value = Convert.ToString(txtTel.Text);
        cmd_sel.Parameters["@msj"].Value = null;
 
 
        cn.Open();
        cmd_sel.ExecuteNonQuery();
        SqlDataReader reader = cmd_sel.ExecuteReader();
 
        lblEstado.Text = Convert.ToString(cmd_sel.Parameters["@msj"].Value);
 
        this.cargardatos();
 
    }
}
Default.aspx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 78%;
        }
        .auto-style2 {
            width: 346px;
        }
        .auto-style3 {
            width: 366px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
         <h4>Insertar datos con procedimiento almacenado:</h4>
        <br />
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>
         <br />
         <table class="auto-style1">
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label5" runat="server" Text="Ingrese el número de cédula a buscar"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtBusCC" runat="server"></asp:TextBox>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label1" runat="server" Text="Cédula:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtId" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtId" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtId" ValidationExpression="^\d+$" ErrorMessage="Por favor ingrese sólo números." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label2" runat="server" Text="Nombre:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtNom" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtNom" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtNom" ValidationExpression="^[A-Z0-9 a-z]*$" ErrorMessage="Por favor ingrese sólo letras y espacios en blanco." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label3" runat="server" Text="Dirección:"></asp:Label>
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtDir" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtDir" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Label ID="Label4" runat="server" Text="Teléfono:"></asp:Label>
 
                 </td>
                 <td class="auto-style3">
                     <asp:TextBox ID="txtTel" runat="server"></asp:TextBox>
                     <%--<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtTel" ErrorMessage="Campo requerido" Display="Dynamic"></asp:RequiredFieldValidator>
                     <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="txtTel" ValidationExpression="^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$" ErrorMessage="Por favor ingrese un número telefónico válido." Display="Dynamic"></asp:RegularExpressionValidator>--%>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Button ID="btnBuscar" runat="server" OnClick="btnBuscar_Click" Text="Buscar" Width="87px" />
                 </td>
                 <td class="auto-style3">
                     <asp:Label ID="lblEstado" runat="server"></asp:Label>
                 </td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     <asp:Button ID="btnActualizar" runat="server" OnClick="btnActualizar_Click" Text="Actualizar" />
                 </td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     &nbsp;</td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
             <tr>
                 <td class="auto-style2">
                     &nbsp;</td>
                 <td class="auto-style3">
                     &nbsp;</td>
             </tr>
         </table>
         <br />
        <br />
 
    </div>
    </form>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Condicionar uso de validadores en webform

Publicado por khristian (80 intervenciones) el 12/05/2016 20:49:34
Deshabilitalos por código... ya sea en servidor o cliente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Reinaldo

Condicionar uso de validadores en webform

Publicado por Reinaldo (3 intervenciones) el 13/05/2016 03:36:06
Hola, gracias por su ayuda, voy a probar deshabilitando los controles según el evento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Condicionar uso de validadores en webform

que onda..... tengo esto. Espero que te sirva

Suerte.....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected void CustomValidator1_ServerValidate(object source,
    ServerValidateEventArgs args)
{
    try
    {
        DateTime.ParseExact(args.Value, "m/d/yyyy",
            System.Globalization.DateTimeFormatInfo.InvariantInfo);
        args.IsValid = true;
    }
    catch
    {
       args.IsValid = false;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Condicionar uso de validadores en webform

Hola que tal podrías ocupar una variable temporal que te sirva para saber el tipo de acción así cuando esa variable vaya llena se habilite el botón de Actualizar y cuando este vacía te sirva para Insertar

1
2
3
4
5
6
7
8
9
10
11
12
public void setInformacion(int _id)
{
	if (_id == 0)
	{
		this.lblAccion.Text = "[AGREGAR]";
	}
	else
	{
		this.lblAccion.Text = "[EDITAR]";
		this.btnGenerar.Enabled = false;
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar