Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/05/2011, 15:07
Ka0stj
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: Saber que control lanza un evento en un TemplateColumn

Hola tesitina

Suponiendo que ya tienes llenos tus DropDownList dentro de tu DataGrid.

En un control DataGrid puedes utilizar el evento SelectedIndexChanged al igual que lo utilizas en un ComboBox:

protected void TuDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList list = (DropDownList)sender;

TableCell cell = list.Parent as TableCell;
DataGridItem item = cell.Parent as DataGridItem;

int index = item.ItemIndex;

string content = item.Cells[0].Text; // Donde [int] es el número de la columna del DataGrid
}

Realizando lo anterior aparte de tener el índice de tu DropDownList puedes obtener valores clave los cuales puedes utilizar para realizar la acción que desees (por ejemplo un UPDATE) como el valor que se obtiene en la variable content.

En tu .aspx llamas este método en el evento OnSelectedIndexChanged (en tu columna Template)

<asp:TemplateColumn HeaderText="Datos">
<ItemTemplate>
<asp:DropDownList ID="NombreDeTuDropDownList" runat="server" OnSelectedIndexChanged = "NombreDeTuDropDownList_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>

Asegurate de que tengas la propiedad AutoPostBack = true.

Espero y te sirva. Saludos!
__________________
http://ka0stj.wordpress.com/