44 messaggi dal 25 gennaio 2006
Ciao a tutti sono ritornato (influenza che non ci voleva proprio...)
Ho un problema ho una combo (DropDownList) all'interno di un datagrid come posso prendere il valore selezionato??
Grazie
dipende :), lo vuoi recuperare alla pressione di un tasto sulla "solita riga" della DropDownList o da un tasto esterno?.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
44 messaggi dal 25 gennaio 2006
il datagrid ha una colonna che quando clicco sull'imag contenente mi apre un DropDownList per modificare un valore ed un'altra imag che richiama una sub che effettua la modifica sul db riesco a richiamare la sub ma non so come catturare il valore del DropDownList questo è il codice della sub:

Dim m_int_Id_DataGrid As Integer
Dim m_Str_AssociatoUpdate As String
m_int_Id_DataGrid = DataGrid_CC_SerAgg.DataKeys.Item (e.Item.ItemIndex)
in che gestore d'evento è il codice che hai postatao?

comunque vedendo l'oggetto "e", potresti utilizzare FindControl(id controllo)

quancosa come e.Item.FindControl(.....)


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
44 messaggi dal 25 gennaio 2006
Questo è il codice del datagrid:
<asp:datagrid id="DataGrid_CC_SerAgg" runat="server" Width="100%" CssClass="TableSection" PageSize="22"
BorderColor="#CEDBEF" AllowPaging="True" DataKeyField="CODE_SERV_AGG" AutoGenerateColumns="False"
OnEditCommand="EditSerAgg" OnUpdateCommand="UpdateSerAgg">
<SelectedItemStyle ForeColor="White" BackColor="#6089BB"></SelectedItemStyle>
<AlternatingItemStyle CssClass="Riga2"></AlternatingItemStyle>
<ItemStyle CssClass="Riga1"></ItemStyle>
<HeaderStyle CssClass="TitleTable"></HeaderStyle>
<Columns>
<asp:EditCommandColumn Visible="False" ButtonType="LinkButton" UpdateText="&lt;img src='xp_images\xp_ico_save.png' border='0' alt='Salva Associazione Servizio'&gt;"
CancelText="" EditText="&lt;img src='xp_images\xp_ico_update.gif' border='0' alt='Modifica Associazione Servizio'&gt;">
<HeaderStyle Wrap="False" Width="1%"></HeaderStyle>
</asp:EditCommandColumn>
<asp:BoundColumn DataField="CODE_SERV_AGG" ReadOnly="True" HeaderText="ID Servizio">
<HeaderStyle Wrap="False" Width="90px"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="DESC_SERV_AGG" ReadOnly="True" HeaderText="Descrizione">
<HeaderStyle Wrap="False" Width="48%"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="Associato">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.TIPO_ASSOCIAZIONE") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="cmb_SA_Associato" runat="server">
<asp:ListItem Value="S">Si</asp:ListItem>
<asp:ListItem Value="N">No</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" CssClass="SectionPaging" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
-------------------------------------------------------
Queste sono le sub associate al datagrid
Sub EditSerAgg(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
If Lbl_Operation.Text = "2" Then 'Operazione di Modifica
DataGrid_CC_SerAgg.EditItemIndex = e.Item.ItemIndex
DataBind()
End If
End Sub
Sub UpdateSerAgg(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
Dim m_int_Id_DataGrid As Integer
Dim m_Str_AssociatoUpdate As String
m_int_Id_DataGrid = DataGrid_CC_SerAgg.DataKeys.Item(e.Item.ItemIndex) 'Chiave cliccata
'Aggiungo la chiave ed il valore associato al datatable
'Verifico se il dato è stato modificato precedentemente
'Dim m_strSqlVerifyDb As String
'm_strSqlVerifyDb = "SELECT CODE_SERV_AGG, TIPO_ASSOCIAZIONE FROM XP_NP_ELSAG "
'm_strSqlVerifyDb = m_strSqlVerifyDb & "WHERE CODE_CLASSE_SA = " & m_int_Code_Classe & " "
'm_strSqlVerifyDb = m_strSqlVerifyDb & "and a.code_serv_agg = " & m_int_Id_DataGrid
m_Str_AssociatoUpdate = CStr((CType(e.Item.Cells(3).Controls(0), DropDownList)).SelectedValue) 'Prendo il valore della combo
'CStr(cmb_SA_Associato.SelectedValue)
'Prendo Il valore della combo p_Obj_DataSetSerAggUpdate cmb_SA_Associato
'm_prova = p_Obj_DataSetSerAgg.Tables("XP_NP_ELSAG").Rows(0).Item("DESC_SERV_AGG")
'p_Obj_DataSetSerAggUpdate() 'Aggiorno questo dataset poi verifico congruenza dati in conferma prima del update
End Sub
nella sub UpdateSerAgg recupera un riferimento alla DropDownList

e.Item.FindControl("cmb_SA_Associato")

considera che FindControl restiruisce un generico oggetto Control, esegui il cast al tipo DropDownList e accedi alle sue proprietà

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
44 messaggi dal 25 gennaio 2006
Grazie Marco ora vedo la combo ma il problema è cambiato non riesco a prendere il valore selezionato il codice che ho scritto è il seguente:
Dim m_Str_AssociatoUpdate As String
Dim m_int_Id_DataGrid As Integer
Dim m_Str_SqlUpdate As String
Dim m_Obj_DropDownListUpd As DropDownList

m_int_Id_DataGrid = DataGrid_CC_SerAgg.DataKeys.Item(e.Item.ItemIndex) 'Chiave cliccata
m_Obj_DropDownListUpd = e.Item.FindControl("cmb_SA_Associato")
m_Str_AssociatoUpdate = m_Obj_DropDownListUpd.SelectedItem.ToString()

Ma cattura sempre il valore Si (il primo) anche se seleziono NO

Grazie
mmm strano, non ci sono altre porzioni di codice che possanoin qualche modo alterare la selezione della DropDownList?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.