Mi consulta es la siguiente:
Cual es la mejor forma de acceder a los controles y valores correspondientes de un UserControl desde un formulario? y expongo el siguiente código como ejemplo:
Código:
public partial class ActualizacionDePreciosTC : System.Web.UI.UserControl
{
double precioUnitario;
public double PrecioUnitario
{
set { precioUnitario = value; }
get { return precioUnitario; }
}
double precioTotal;
public double PrecioTotal
{
get { return precioTotal; }
set { precioTotal = value ; }
}
string moneda;
public string Moneda
{
get { return moneda; }
set { moneda = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
txtMontoUnitario.Text = Convert.ToString(PrecioUnitario);
string mensaje = "";
double importeUnitario = 0;
double monedaActual = 25.5;
int tipoMoneda = 0;
Cotizacion c = null;
c = LogicaCotizacion.BuscarCotizacionActual();
if (c != null)
{
try
{
importeUnitario = PrecioUnitario;
}
catch
{
mensaje = "El importe ingresado debe ser un decimal. ";
}
if (mensaje == "")
{
tipoMoneda = Convert.ToInt32(ddlMoneda.SelectedIndex);
if (tipoMoneda == 0)
{
txtMontoConvertido.Text = Convert.ToString(PrecioUnitario);
PrecioTotal = importeUnitario;
Moneda = "Dolares";
}
else
{
if (tipoMoneda == 1)
{
monedaActual = c.Dolar;
importeUnitario = importeUnitario * monedaActual;
txtMontoConvertido.Text = (importeUnitario).ToString();
PrecioTotal = importeUnitario;
Moneda = "Pesos";
}
else
{
monedaActual = c.Euro;
importeUnitario = importeUnitario * c.Dolar / c.Euro;
txtMontoConvertido.Text = (importeUnitario).ToString();
PrecioTotal = importeUnitario;
Moneda = "Euros";
}
}
}
else
{
lblError.Text = mensaje;
}
}
else
{
lblError.Text = "No existen tipos de cambios. ";
}
}
protected void btnActualizar_Click(object sender, EventArgs e)
{
string mensaje = "";
double importeUnitario = 0;
double monedaActual = 0;
int tipoMoneda = 0;
Cotizacion c = null;
c = LogicaCotizacion.BuscarCotizacionActual();
if (c != null)
{
try
{
importeUnitario = PrecioUnitario;
}
catch
{
mensaje = "El importe ingresado debe ser un decimal. ";
}
if (mensaje == "")
{
tipoMoneda = Convert.ToInt32(ddlMoneda.SelectedIndex);
if (tipoMoneda == 0)
{
txtMontoConvertido.Text = Convert.ToString(PrecioUnitario);
}
else
{
if (tipoMoneda == 1)
{
monedaActual = c.Dolar;
importeUnitario = importeUnitario * monedaActual;
txtMontoConvertido.Text = (importeUnitario).ToString();
}
else
{
monedaActual = c.Euro;
importeUnitario = importeUnitario * c.Dolar / c.Euro;
txtMontoConvertido.Text = (importeUnitario).ToString();
}
}
}
else
{
lblError.Text = mensaje;
}
}
else
{
lblError.Text = "No existen tipos de cambios. ";
}
}
protected void ddlMoneda_SelectedIndexChanged(object sender, EventArgs e)
{
this.btnActualizar_Click(sender, e);
}
Esto es a modo de encontrar el mejor rendimiento para la utilización del UserControl.