Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/06/2013, 08:56
Avatar de lucord
lucord
 
Fecha de Ingreso: marzo-2010
Ubicación: San Jose, Costa Rica
Mensajes: 87
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Evento SelectedIndexChanged de un combox dentro de un datagridview

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
  1. <asp:TemplateField>
  2.                 <ItemTemplate>
  3.                    <asp:DropDownList ID="drop" runat="server" OnSelectedIndexChanged="drop_SelectedIndexChanged" AutoPostBack ="true">
  4.                         <asp:ListItem Value="1">UNO</asp:ListItem>
  5.                         <asp:ListItem Value="2">DOS</asp:ListItem>
  6.                    </asp:DropDownList>
  7.                 </ItemTemplate>
  8.   </asp:TemplateField>


Luego, el code behind

Código vb:
Ver original
  1. Protected Sub drop_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
  2.         Dim ddl As DropDownList = TryCast(sender, DropDownList)
  3.         'se busca dentro del grid la fila que tenga el control
  4.        For Each row As GridViewRow In Gridar.Rows
  5.             'buscar Dropdown control  
  6.            Dim ctrl As Control = TryCast(row.FindControl("drop"), DropDownList)
  7.             If ctrl IsNot Nothing Then
  8.                 Dim ddl1 As DropDownList = DirectCast(ctrl, DropDownList)
  9.                 'comparar ClientID con el dropdown del sender
  10.                If ddl.ClientID = ddl1.ClientID Then
  11.                     mensaje(ddl1.SelectedValue)
  12.                     Exit For
  13.                 End If
  14.             End If
  15.         Next
  16.     End Sub

Código C:
Ver original
  1. protected void drop_SelectedIndexChanged(object sender, EventArgs e)
  2. {
  3.     DropDownList ddl = sender as DropDownList;
  4.     //se busca dentro del grid la fila que tenga el control
  5.     foreach (GridViewRow row in Gridar.Rows) {
  6.         //buscar Dropdown control  
  7.         Control ctrl = row.FindControl("drop") as DropDownList;
  8.         if (ctrl != null) {
  9.             DropDownList ddl1 = (DropDownList)ctrl;
  10.             //comparar ClientID con el dropdown del sender
  11.             if (ddl.ClientID == ddl1.ClientID) {
  12.                 mensaje(ddl1.SelectedValue);
  13.                 break; // TODO: might not be correct. Was : Exit For
  14.             }
  15.         }
  16.     }
  17. }

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.

Última edición por lucord; 17/06/2013 a las 09:02