public List<Purc_RequisitionTR> obtenerPurc_Requisition(Purc_RequisitionTR paramRequisicion,ControlConsulta controlconsulta)
{
return new Purc_RequisitionAD
(conexionOracle
).obtenerPurc_Requisition(paramRequisicion,controlconsulta
); }
dvReq_Line
.DataSource = new Purc_RequisitionNG
(conexionOracle
).obtenerPurc_ReqLine(DetalleReq, ControlConsulta
.ConsultaLlave);
Hasta alli todo funciona muy bien.
Hice un método para Limpiar todos los objetos que estan contenido en la WinForm,
El problema que tengo es que mi método me limpia correctamente un DataGridView cuando el DataSource se ha cargado con un DataTable, pero si se ha cargado con una List<> (como describo en mi ejemplo), allí ya saca error y es obviamente porque lo estoy condicionando.
Adjunto mi código del método limpiar , para que se den una idea de lo que intente hacer , pero lo deje en comentario porque no es lo óptimo.
Si me dan una idea de como puedo cambiar el
typeof(System.Collections.Generic.List<Purc_Req_lineTR
>)) , ya que haciendolo de esta manera , queda amarrado al una lista específica y la idea es poner este código en una libreria que pueda servir a cualquier desarrollador
. Gracias por la ayuda
public static void limpiaForm(Control objContenedor)
{
// para cada control contenido en la colección
foreach (Control obj in objContenedor.Controls)
{
// si tiene hijos, recórrelos de forma recursiva
if (obj.HasChildren) limpiaForm(obj);
if (obj
is TextBox
) ((TextBox
)obj
).Text = ""; if (obj
is CheckBox
) ((CheckBox
)obj
).Checked = false; if (obj
is RadioButton
) ((RadioButton
)obj
).Checked = false; if (obj
is ComboBox
) ((ComboBox
)obj
).Text = null; if (obj
is ListBox
) ((ListBox
)obj
).Items.Clear(); // cambie la forma de limpiar el dataGridView para que pintara correctamente las columnas predefinidas
// si se quiere volver a cargar los datos de la base de datos. Si es un DataGridView que no tiene
//predefinido el DataSource , el DataSource de mentenerse null
{
if (((DataGridView)obj).DataSource != null)
{
//string tipo = ((DataGridView)obj).DataSource.GetType().ToString();
//if (((DataGridView)obj).DataSource.GetType() == typeof(System.Collections.Generic.List<Purc_Req_lineTR>))
//{
// MessageBox.Show("lo encontro");
//}
DataTable dt;
dt = (DataTable)(((DataGridView)obj).DataSource);
dt.Rows.Clear();
}
else
{
((DataGridView)obj).Rows.Clear(); ;
}
}
}
}