Non era esattamente quello che mi serviva (manca l'associazione ai dati della datagrid e il riempimento), cumunque ho trovato un'altra soluzione, e la posto per i posteri :sexpulp:
grazie comunque della risp.
Allora,
nel file .aspx:
OnItemDataBound è un evento generato dovo il bindingi di ogni riga del datagrid. E possibile utilizarlo per modificare l'aspetto di una riga.codice:<asp:datagrid id="DataGridNews" runat="server" AutoGenerateColumns="False" Width="100%" OnItemDataBound="DataGridNews_ItemDataBound" DataKeyField="NewsID"> <Columns> ... <asp:BoundColumn DataField="Status" HeaderText="Status" Visible="False"></asp:BoundColumn> <asp:TemplateColumn HeaderText="Status"> <ItemTemplate> <asp:DropDownList Runat="server" ID="DropDownStatus"></asp:DropDownList> </ItemTemplate> </asp:TemplateColumn> </Columns> ... </asp_datagrid>
La prima boundcolumn e nascosta e riporta il valore da assegnare alla dropdown, la seconda colonna contiene la dropdown.
nel file .cx c'è il gestore dell'evento:
loadKeyValue è una mia funzione che riempe la DropDown con dei valori da dbcodice:protected void DataGridNews_ItemDataBound(object sender, DataGridItemEventArgs e) { try { LoadKeyValueDropDown(DDconnection,"NEW_STATUS", ((DropDownList)e.Item.FindControl("DropDownStatus"))); ((DropDownList)e.Item.FindControl("DropDownStatus")).SelectedValue= ((TableCell)e.Item.Controls[6]).Text; } catch(Exception ex){Response.Write(ex.Message);} }
((DropDownList)e.Item.FindControl("DropDownStatus" )) e la dropdown, ricercata tramite id.
((TableCell)e.Item.Controls[6]).Text riporta il testo della 6 colonna che nel mio caso e quella con il valore da assegnare.
spero possa servire a qualcuno![]()

Rispondi quotando