Forums Últimos mensajes - Powered by IBM
 

Existe una forma mejor ???

26/01/2005 - 16:34 por Ramon Zarza | Informe spam
Colegas

el caso es que al editar un datagrid, debo seleccionar de una lista el valor
actual del campo (para evitar que vaya al inicio de la lista y por error se
modifique si no se desea modificar ese valor)

para hago el siguiente método, recorriendo toda la tabla para bucsar la
coincidencia del valor desado y asi tomar su ID y asignarle al valor de la
lista que aparece en modo edición.

Mi pregunta..
.-Hay unaforma de evitar el recorrido de la tabla??
.- Probe con DataView.RowFilter y el DataSet21.Tabla.Select( ...)
.- peor no se que me devuelve ni como tomar el valor que necesito..

Alguien me puede ayudar con un par de lineas que me permitan evitar recorrer
la tabla y asi acelerar el proceso.

Gracias a todos por su ayuda.

Ramón Zarza

Aqui les dejo el código actual
*****************************
private void editRow(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
// Coloco en modo edicion el dataGrid
DataGrid1.EditItemIndex=e.Item.ItemIndex;
bindGrid();

// obtengo el valor del campo TipoArticulo del DataGrid antes de editar
string actualTipoArticulo =
dataSet21.ItemsFactura.Rows[e.Item.ItemIndex]["TipoArticulo"].ToString();
// Busco el valor del ID del Tipo de articulo del row actual del
dataGrid
DataTable dt= dataSet21.TipoArticulo;
int contador = dt.Rows.Count;
string actualIndex;
actualIndex=""; // inicializo la variable
for (int i=1;i<=contador;i++) // recorro la tabla buscando el valor
actual del grid
{
if (dt.Rows[i]["TipoArticulo"].ToString()==actualTipoArticulo )
{
actualIndex = dt.Rows[i]["idtipoarticulo"].ToString() ; // al
encontrar el row, obtengo el id del tipo articulo deseado
break;
}
}

//Asigno el valor obtenido al DropDownList que se presenta en modo de
edicion
//
((DropDownList)DataGrid1.Items[e.Item.ItemIndex].Cells[2].Controls[1]).SelectedValue
= actualIndex;
}
catch(Exception ex)
{
Session["ex"]=ex;
Response.Redirect("Error.aspx");
}

}

******************************
 

Preguntas similares