Hola que tal serbc27, en realidad no es difícil.
primero el código aspx que va dentro del gridview
Código ASP:
Ver original<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="drop" runat="server" OnSelectedIndexChanged="drop_SelectedIndexChanged" AutoPostBack ="true">
<asp:ListItem Value="1">UNO</asp:ListItem>
<asp:ListItem Value="2">DOS</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
Luego, el code behind
Código vb:
Ver originalProtected Sub drop_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim ddl As DropDownList = TryCast(sender, DropDownList)
'se busca dentro del grid la fila que tenga el control
For Each row As GridViewRow In Gridar.Rows
'buscar Dropdown control
Dim ctrl As Control = TryCast(row.FindControl("drop"), DropDownList)
If ctrl IsNot Nothing Then
Dim ddl1 As DropDownList = DirectCast(ctrl, DropDownList)
'comparar ClientID con el dropdown del sender
If ddl.ClientID = ddl1.ClientID Then
mensaje(ddl1.SelectedValue)
Exit For
End If
End If
Next
End Sub
Código C:
Ver originalprotected void drop_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = sender as DropDownList;
//se busca dentro del grid la fila que tenga el control
foreach (GridViewRow row in Gridar.Rows) {
//buscar Dropdown control
Control ctrl = row.FindControl("drop") as DropDownList;
if (ctrl != null) {
DropDownList ddl1 = (DropDownList)ctrl;
//comparar ClientID con el dropdown del sender
if (ddl.ClientID == ddl1.ClientID) {
mensaje(ddl1.SelectedValue);
break; // TODO: might not be correct. Was : Exit For
}
}
}
}
en este caso en el código, lo único que hice es mostrar en un mensaje el SelectedValue del dropdownlist
Si tienes alguna duda estoy a tus ordenes.
Salu2.