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

Pasar Control como Parámetro

Estas en el tema de Pasar Control como Parámetro en el foro de .NET en Foros del Web. Hola a tod@s: Programando con C# en ASP 1.1 ó ASP 2.0 Estoy queriendo hacer un archivo con funciones genéricas para validar un formulario. ¿Se ...
  #1 (permalink)  
Antiguo 22/04/2007, 18:19
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Pasar Control como Parámetro

Hola a tod@s:

Programando con C# en ASP 1.1 ó ASP 2.0

Estoy queriendo hacer un archivo con funciones genéricas para validar un formulario.

¿Se puede pasar en una función todo un control web para luego manejar sus propiedades?

Por ejemplo que:

- Al hacer clic en el botón de envío del formulario, se comprueba que un CheckBox está chequeado

[Al hacer clic en ENVIAR]
comprobar(CheckBox1);

[en el archivo dónde se valida]
Código:
public static bool casilla_chequeada(CheckBox control)
{
	if(control.Checked == true)
	{
		return "control chequeado";
	}
}

En proyectos win.form con Visual Basic, se pueden pasar controles como parámetros de esta manera:
Código:
Private Sub nomProcedimiento(ByVal CheckBox1 As CheckBox)
	If (CheckBox1.Checked = True) Then
		...
	End If
End Sub
__________________
Saludos,

zacktagnan.
=================================================
  #2 (permalink)  
Antiguo 23/04/2007, 07:49
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

¿Ninguna idea...?
__________________
Saludos,

zacktagnan.
=================================================
  #3 (permalink)  
Antiguo 23/04/2007, 15:33
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Re: Pasar Control como Parámetro

Cita:
Iniciado por zacktagnan Ver Mensaje
¿Se puede pasar en una función todo un control web para luego manejar sus propiedades?
La respuesta debería ser obvia pero no sé porque dudas: si se puede...

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 23/04/2007, 17:04
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

Y ¿cómo?. Un pequeño ejemplillo...
__________________
Saludos,

zacktagnan.
=================================================
  #5 (permalink)  
Antiguo 26/04/2007, 03:03
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

Entonces, ¿no hay un ejemplito? Porfi...
__________________
Saludos,

zacktagnan.
=================================================
  #6 (permalink)  
Antiguo 26/04/2007, 11:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años, 8 meses
Puntos: 1
Sonrisa Re: Pasar Control como Parámetro

Pues la verdad no tengo ni idea de C# asi ke te respondo en visual basic si es ke entendi bien la pregunta....



// la clase
Public Class Class1
Public Function checkeado(ByVal control As CheckBox) As String
If control.Checked = True Then
Return "Checkeado"
Else
Return "No Checkeado"
End If
End Function
End Class





//el code behind
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x As New Class1
Response.Write(x.checkeado(Me.CheckBox1))
End Sub

tonces... komo ves solo kreo un objeto de la klase y listo... al pasarle el checkbox, el me devuelve si esta o no checkeado y en este kaso haria un response.write del mensaje ke devuelva ------- espero sea eso // pues iba a enviar el webform pero no me deja por lo de las url XD



kik930+hotmail
crassr3cords+gmail
  #7 (permalink)  
Antiguo 26/04/2007, 12:19
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

Gracias crassr3cords por tu respuesta.

Aunque en VisualBasic ya tenía una idea de como podía ser...

Lo que necesito es saber como se hace lo mismo en C#...

A ver si poniendo lo que tu me pasas en uno de esos conversores de código (de VB a C# // de C# a VB), consigo sacarlo en C#.

A no ser que alguien aporte algo en C#...
__________________
Saludos,

zacktagnan.
=================================================
  #8 (permalink)  
Antiguo 28/04/2007, 13:34
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

Bueno, al pasar el código VB de crassr3cords a C#, se ha quedado como sigue:

Código:
public string estaChequeado(CheckBox check_Control)
{
	if(check_Control.Checked == true)
	{
		return "Control CHEQUEADO";
	}
	else
	{
		return "Control NO CHEQUEADO";
	}
}
La verdad es que no estoy del todo seguro de que sea correcto.

Sea como sea, ahora, al ejecutar, me da este error:
"...No se puede encontrar el tipo o el nombre de espacio de nombres 'CheckBox' (¿falta una directiva using o una referencia de ensamblado?)"

El archivo en ques estoy programando esto es una clase .cs

No sé a qué using se refiere. ¿Alguien lo sabe?
__________________
Saludos,

zacktagnan.
=================================================
  #9 (permalink)  
Antiguo 28/04/2007, 17:54
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Pasar Control como Parámetro

¿Estamos hablando de un custom control verdad?

Si no estamos hablando de eso, creo que deberías replantear la forma en la que planeas hacerlo, finalmente recuerda que todo lo que hagas debe ser orientado al objeto con el que estamos trabajando.

Ahora, asumiendo que es un custom control, lo que puedes hacer es una propiedad que adquiera el valor de sí ese checkbox está seleccionado.


Código:
//Control
protected System.Web.UI.WebControls.Checkbox esteCheckBox;

private bool estaSeleccionado;

public bool EstaSeleccionado
{
     get { return esteCheckBox.Checked; }
}
//Termina Control

//Cualquier lugar donde se encuentre el control
if ( TuContro.EstaSeleccionado )
   //si esta seleccionado
else
  //no esta seleccionado

Salud!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 29/04/2007, 07:55
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 10 meses
Puntos: 4
Re: Pasar Control como Parámetro

Error de browser...
__________________
Holden-@r
http://www.hvaldez.com.ar

Última edición por Holden; 29/04/2007 a las 08:02
  #11 (permalink)  
Antiguo 29/04/2007, 08:01
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 10 meses
Puntos: 4
Re: Pasar Control como Parámetro

A mi se me ocurriria hacer una clase helper que te permita meter todas las validaciones allí.

Mmmm.... creo que acabas de darme una muy buena idea para convertir mi viejo jsValidator a validator.net...

Algo así como:
UIValidator.ValidarFecha(txtbox, "mensaje si falla la validacion");
UIValidator.ValidarVacio(txtbox, "mensaje si falla la validacion");
UIValidator.ValidarHora(txtbox, "Hora no válida");
UIValidator.Comparar.MayorOIgual(txtbox1, textbox2, "Hora no válida");

Lo que puedes que haga es que genere instancias dinamicas de tipos de validadores nativos de .net.
Esto simplemente tiene la particularidad de ser un wrapper de todo lo que te da .net y poder pasar en forma cómoda los mensajes de error cuando necesitas multiidioma.

Lo voy a hacer y luego lo presentaré por aquí.
Saludos.
__________________
Holden-@r
http://www.hvaldez.com.ar
  #12 (permalink)  
Antiguo 29/04/2007, 12:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Pasar Control como Parámetro

Cita:
Iniciado por Holden Ver Mensaje
A mi se me ocurriria hacer una clase helper que te permita meter todas las validaciones allí.

Mmmm.... creo que acabas de darme una muy buena idea para convertir mi viejo jsValidator a validator.net...

Algo así como:
UIValidator.ValidarFecha(txtbox, "mensaje si falla la validacion");
UIValidator.ValidarVacio(txtbox, "mensaje si falla la validacion");
UIValidator.ValidarHora(txtbox, "Hora no válida");
UIValidator.Comparar.MayorOIgual(txtbox1, textbox2, "Hora no válida");

Lo que puedes que haga es que genere instancias dinamicas de tipos de validadores nativos de .net.
Esto simplemente tiene la particularidad de ser un wrapper de todo lo que te da .net y poder pasar en forma cómoda los mensajes de error cuando necesitas multiidioma.

Lo voy a hacer y luego lo presentaré por aquí.
Saludos.
Pero ¿por que hacer esto si puedes usar la validación nativa? si necesitas una validación específica, creas un custom validator y listo, lo usas donde quieras...


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 29/04/2007, 12:13
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 7 meses
Puntos: 3
Re: Pasar Control como Parámetro

Vamos a ver. Yo lo que estaba tratando de hacer es montar un archivo de clase que contuviera todas las funciones para validar los campos pasados de un formulario.

Funciones para comprobar cosas como campo vacío, una longitud de caracteres determinada, campo numérico, es fecha válida, casilla chequeada, ... y cosas así.

Entonces, tengo el formulario:

z_form_funcionesvalid.aspx
Código:
<%@ Page language="c#" Codebehind="z_form_funcionesvalid.aspx.cs" AutoEventWireup="false" Inherits="webvideoclub.z_form_funcionesvalid" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
		<title>z_form_funcionesvalid</title>
		<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
		<meta name="CODE_LANGUAGE" Content="C#">
		<meta name="vs_defaultClientScript" content="JavaScript">
		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
	</HEAD>
	<body MS_POSITIONING="GridLayout">
		<form id="z_form_funcionesvalid" method="post" runat="server">
			<asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 184px; POSITION: absolute; TOP: 73px" runat="server">Numero:</asp:Label>
			<asp:Label id="Label3" style="Z-INDEX: 106; LEFT: 199px; POSITION: absolute; TOP: 129px" runat="server">Menú:</asp:Label>
			<asp:TextBox id="TextBox2" style="Z-INDEX: 104; LEFT: 252px; POSITION: absolute; TOP: 97px" runat="server"></asp:TextBox>
			<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 252px; POSITION: absolute; TOP: 68px" runat="server"></asp:TextBox>
			<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 169px; POSITION: absolute; TOP: 102px" runat="server">Texto (20):</asp:Label>
			<asp:DropDownList id="DropDownList1" style="Z-INDEX: 105; LEFT: 252px; POSITION: absolute; TOP: 129px" runat="server">
				<asp:ListItem Value="Seleccionar un elemento" Selected="True">Seleccionar un elemento</asp:ListItem>
				<asp:ListItem Value="Elemento 1 Menú">Elemento 1 Menú</asp:ListItem>
				<asp:ListItem Value="Elemento 2 Menú">Elemento 2 Menú</asp:ListItem>
			</asp:DropDownList>
			<asp:CheckBox id="CheckBox1" style="Z-INDEX: 107; LEFT: 204px; POSITION: absolute; TOP: 159px" runat="server" TextAlign="Left" Text="Casilla:"></asp:CheckBox>
			<asp:RadioButtonList id="RadioButtonList1" style="Z-INDEX: 108; LEFT: 244px; POSITION: absolute; TOP: 179px" runat="server" RepeatDirection="Horizontal">
				<asp:ListItem Value="Opción 1">Opción 1</asp:ListItem>
				<asp:ListItem Value="Opción 2">Opción 2</asp:ListItem>
			</asp:RadioButtonList>
			<asp:ListBox id="ListBox1" style="Z-INDEX: 109; LEFT: 251px; POSITION: absolute; TOP: 212px" runat="server">
				<asp:ListItem Value="Lista Elemento 1">Lista Elemento 1</asp:ListItem>
				<asp:ListItem Value="Lista Elemento 2">Lista Elemento 2</asp:ListItem>
				<asp:ListItem Value="Lista Elemento 3">Lista Elemento 3</asp:ListItem>
				<asp:ListItem Value="Lista Elemento 4">Lista Elemento 4</asp:ListItem>
			</asp:ListBox>
			<asp:Button id="Button1" style="Z-INDEX: 110; LEFT: 255px; POSITION: absolute; TOP: 311px" runat="server" Text="Enviar"></asp:Button>
			<asp:Panel id="Panel1" style="Z-INDEX: 111; LEFT: 27px; POSITION: absolute; TOP: 176px" runat="server" Width="132px" Height="114px" BorderStyle="Solid" BorderWidth="1px" Visible="False">
				<%= errores_insDatos(verrores_insDatos)%>
				<%--=verrores_insDatos--%>
				<BR>
				<asp:Button id="Button2" runat="server" Text="Ocultar"></asp:Button>
			</asp:Panel>
		</form>
	</body>
</HTML>
y en su parte de código:

z_form_funcionesvalid.aspx.cs

Código:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace webvideoclub
{
	/// <summary>
	/// Descripción breve de z_form_funcionesvalid.
	/// </summary>
	public class z_form_funcionesvalid : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.TextBox TextBox1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.TextBox TextBox2;
		protected System.Web.UI.WebControls.DropDownList DropDownList1;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.CheckBox CheckBox1;
		protected System.Web.UI.WebControls.RadioButtonList RadioButtonList1;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.ListBox ListBox1;
		protected System.Web.UI.WebControls.Panel Panel1;
		protected System.Web.UI.WebControls.Button Button2;
		protected string verrores_insDatos;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// Introducir aquí el código de usuario para inicializar la página
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: llamada requerida por el Diseñador de Web Forms ASP.NET.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Método necesario para admitir el Diseñador, no se puede modificar
		/// el contenido del método con el editor de código.
		/// </summary>
		private void InitializeComponent()
		{    
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Button2.Click += new System.EventHandler(this.Button2_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void comprobarDatos()
		{
			/*
			 * COMPROBACIÓN DE CONTENIDO Y TAMAÑO
			 * */
			verrores_insDatos = "";

			//NÚMERO (NO NULL Y NÚMERO)
			if(webvideoclub.funcionesvalid.estaVacio(TextBox1.Text) == true)
			{
				verrores_insDatos = verrores_insDatos + "<br>&bull; Suministrar dato en la casilla <strong>[N&uacute;mero]</strong>.";
			}
			else
			{
				if(webvideoclub.funcionesvalid.esNumero(TextBox1.Text) == false)
				{
					verrores_insDatos = verrores_insDatos + "<br>&bull; El dato de la casilla <strong>[N&uacute;mero]</strong> debe ser un n&uacute;mero.";
				}
			}

			//TEXTO (NO NULL Y LONGITUD 20)
			if(webvideoclub.funcionesvalid.estaVacio(TextBox2.Text) == true)
			{
				verrores_insDatos = verrores_insDatos + "<br>&bull; Suministrar dato en la casilla <strong>[Texto]</strong>.";
			}
			else
			{
				if(webvideoclub.funcionesvalid.longitudCorrecta(TextBox2.Text, 20) == false)
				{
					verrores_insDatos = verrores_insDatos + "<br>&bull; La longitud m&aacute;xima permitida del dato <strong>[Texto]</strong> es de 20 caracteres.";
				}
			}

			//CASILLA CHEQUEADA Ó NO
			//...

			//SI SE DIÓ ALGÚN ERROR DE DATOS...
			if(verrores_insDatos != "")
			{
				verrores_insDatos = "<br>* ERROR(ES) PRODUCIDO(S) *<br>" + verrores_insDatos;
			}
		}

		protected string errores_insDatos(string los_verrores_insDatos)
		{
			return los_verrores_insDatos;
		}

		private void Button1_Click(object sender, System.EventArgs e)
		{
			comprobarDatos();

			if(verrores_insDatos != "")
			{
				errores_insDatos(verrores_insDatos);
				Panel1.Visible = true;
			}
		}

		private void Button2_Click(object sender, System.EventArgs e)
		{
			Panel1.Visible = false;
		}
	}
}

Y este es el archivo de clase dónde estoy poniendo las funciones de validación:

Código:
using System;

namespace webvideoclub
{
	/// <summary>
	/// Descripción breve de funcionesvalid.
	/// </summary>
	public class funcionesvalid
	{
		public funcionesvalid()
		{
			//
			// TODO: agregar aquí la lógica del constructor
			//
		}//estaVacio

		public static bool estaVacio(object valor)
		{
			if(valor.ToString() == "")
				//if(valor.ToString().Length == 0)
			{
				return true;
			}
			else
			{
				return false;
			}
		}

		public static bool longitudCorrecta(object valor, int longitudCampo)
		{
			if(valor.ToString().Length > longitudCampo)
			{
				return false;
			}
			else
			{
				return true;
			}
		}

		public static bool esNumero(object value)
		{
			try
			{
				double d = System.Double.Parse(value.ToString(), System.Globalization.NumberStyles.Any);
				return true;
			}
			catch (System.FormatException)
			{
				return false;
			}
		}

		//¿¿FUNCIÓN CASILLA CHEQUEADA??
		//...

	}
}
Espero que ahora se entienda lo que estaba pidiendo, es parecido a lo que dice Holden...

No se si es la mejor manera de hacerlo. Yo estaba haciendo pruebas para ver si se podía hacer así, y tener una clase con todas las funciones que fueran manejadas por todos los formularios a validar...
__________________
Saludos,

zacktagnan.
=================================================
  #14 (permalink)  
Antiguo 29/04/2007, 12:27
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Pasar Control como Parámetro

Entiendo la idea, pero digo lo mismo, para existen los custom validators, además hay muchas cosas que realmente no merece la pena hacer tu propia clase de validación.

Quieres validar que no este vacio - utiliza un requiredvalidator
Quieres validar un número de teléfono? - utiliza un reularexpression validator
Quieres validar algo demasiado específico? - crea un custom validator con las validaciones que se te ocurran.

De esta manera harás solo lo que necesitas y no te romperás la cabeza haciendo tu propia clase de validaciones, es como inventar el agua tibia...

Mis 0.02

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 29/04/2007, 15:52
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 10 meses
Puntos: 4
Re: Pasar Control como Parámetro

Cita:
Iniciado por u_goldman Ver Mensaje
Entiendo la idea, pero digo lo mismo, para existen los custom validators, además hay muchas cosas que realmente no merece la pena hacer tu propia clase de validación.

Quieres validar que no este vacio - utiliza un requiredvalidator
Quieres validar un número de teléfono? - utiliza un reularexpression validator
Quieres validar algo demasiado específico? - crea un custom validator con las validaciones que se te ocurran.

De esta manera harás solo lo que necesitas y no te romperás la cabeza haciendo tu propia clase de validaciones, es como inventar el agua tibia...

Mis 0.02

Saludos
SI totalmente de acuerdo u_goldman... pero justamente lo que decia era hacer un wraper para manejar todo desde el code behind y no tener que andar instanciando validadores y seteando siempre las mismas cosas.

Ej:

Código HTML:
 public void Email(Control control, string msg)
    {
        RegularExpressionValidator validator = new RegularExpressionValidator();
        validator.ID = string.Concat(RequireFileValidatorPrefix, control.ID);
        validator.ControlToValidate = control.ID;
        validator.ValidationExpression = RegExpEmail; //expresion regular para validar el mail
        validator.ErrorMessage = msg;
        validator.Text = this.errorIndicator;
    }

Esto es asi para cada campo que se te ocurra validar... como te repito el 85% del codigo ese lo vas a repetir SIEMPRE para cualquier proyecto, la idea es wrapearlo y realizar las validaciones mas rapido. sin tener que instanciar las cosas en tiempo de diseño, setear propiedades, tener que pegar siempre las mismas regPattenrs...
Me explico?
__________________
Holden-@r
http://www.hvaldez.com.ar
  #16 (permalink)  
Antiguo 29/04/2007, 17:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Pasar Control como Parámetro

Cita:
Iniciado por Holden Ver Mensaje
Esto es asi para cada campo que se te ocurra validar... como te repito el 85% del codigo ese lo vas a repetir SIEMPRE para cualquier proyecto, la idea es wrapearlo y realizar las validaciones mas rapido. sin tener que instanciar las cosas en tiempo de diseño, setear propiedades, tener que pegar siempre las mismas regPattenrs...
Me explico?

No estoy de acuerdo, que mas te da escribir una linea HTML mas por cada control, personalmente he hecho formas enormes y digo enormes para aplicaciones de empleo por ejemplo y realmente una de las últimas cosas por las que me he preocupado es "mejorar" las validaciones, todo esta hecho y lo que no, es de fácil implementación, por eso yo no ocuparía mi tiempo en esto, como dije, se me hace que están inventando el agua tibia, sin embargo lo respeto.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #17 (permalink)  
Antiguo 29/04/2007, 19:26
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 10 meses
Puntos: 4
Re: Pasar Control como Parámetro

pero no estamos haciendo nada "inventado", simplemente estamos agregando dinamicamente los validadores nativos de .net por medio de un metodo que hace todo el wrapping...

Que le ves de inventado al codigo que pastié?

Me pregunto como haces cuando tenes que pasar mensajes de multiidioma sobre las validaciones...
Porque imagino que no te queda otra alternativa que hacerlo por codigo, o no?
__________________
Holden-@r
http://www.hvaldez.com.ar
  #18 (permalink)  
Antiguo 29/04/2007, 20:05
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Pasar Control como Parámetro

Cita:
Que le ves de inventado al codigo que pastié?
¿Pastié es "pegué"? Si es así:

Que es exactamente lo mismo que tener un custom control textbox con su validacion correspondiente de email y que lo puedas ocupar en todos lados, para eso existen los custom controls, o en todo caso usar un validator "on demand".

Recuerda que al hacer cosas este tipo de cosas por código no solo estás agregando otra capa de mantenimiento, sino estás haciendo algo que realmente no es convencional y que a otra persona le costará mas trabajo manterner en caso de que no seas tú quien lo haga, además que si las reglas cambian tienes que tener acceso al código fuente (cosa que no necesariamente sucede en el caso del cliente).

En fin, son muchos los cuestionamientos que se pueden dar a esto, pero no estoy aquí para decir como hacer las cosas ni para ser cuestionado en como hago las cosas, simplemente di mi opinión y dije que respetaba la suya, aunque no esté de acuerdo.

Ah y para las soluciones multi-lenguaje existen localizations.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #19 (permalink)  
Antiguo 29/04/2007, 21:58
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 10 meses
Puntos: 4
Re: Pasar Control como Parámetro

Hey amigo, nadie está cuestionandote... solo estamos intercambiando opiniones. Bah, al menos ese es mi objetivo.
Y si me cuestionas algo y esta bien fundamentado bienvenido sea para eso estoy por acá.

Honestamente sigo sin verle el lado negativo a wrapear los validators.
Es decir, tienes algun tipo de overhead al instanciar los controloes de validación por codigo?

Entiendo lo que dices de hacer custom controls y no es lo a lo que apuntaba.

Saludos
__________________
Holden-@r
http://www.hvaldez.com.ar
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:57.