Ho un repeater che contiene un elenco di gridview

<asp:Repeater ID="rpt1" runat="server">
<ItemTemplate>
<div class="ValutazioneTitolo">
<%# DataBinder.Eval(Container.DataItem, "Descrizione") %>
</div>
<asp:GridView ID="grd1" EnableViewState="false" ShowHeader="false" AutoGenerateColumns="false" runat="server"
DataSource='<%# ((System.Data.DataRowView)Container.DataItem).Crea teChildView("CustomerRelation0")%>' >
<RowStyle CssClass="ValutazioneRighe" />
<AlternatingRowStyle/>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<td>
<span class="Testo8"><div align="left"><%# DataBinder.Eval(Container.DataItem, "Elementi") %></div></span>
</td>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<td style="height: 42px" width="10">
<aspropDownList ID="ddlValutazione" runat="server" Cssclass="TestoDataGrid" DataSource="<%# DsDati %>" DataValueField="Range" DataMember="Range" DataTextField="Range" SelectedValue='<%# DataBinder.Eval(Container.DataItem,"Range") %>'></aspropDownList>
</td>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>


Ho due problemi:

1) come posso alimentare i DDL che si trovano nei vari GridView con un valori di default recuperati dal DB??

io ho provato ad aggiungere un

SqlCommand myCommand = new SqlCommand("GetRange", dbconn);
myCommand.CommandType = CommandType.StoredProcedure;
SqlDataAdapter DataAdapt = new SqlDataAdapter(myCommand);
DataAdapt.Fill(DsDati, "Range");

al codice del DDL inserito nell'HTML

ma non funziona, dove sbaglio???

Secondo problema, sul quale proprio non abozzare una soluzione:

2) come posso iterare tutti i gridview per salvare nel DB le modifiche fatte ai DDL presenti nella pagina??



Grazie per l'aiuto!