Voglio creare una dropdownlist in una gridview. Il problema è che tutte e due devono essere create attraverso dei sqldatasource(diversi).

Per ogni riga del mio gridview(contraddistinto da un datakeyname="id")
devo effettuare una query sul db per popolare la dropdownlist. Quando carico la pagina però la dropdownlist è vuota!

Ecco il mio codice:
codice:
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id_nazione" DataSourceID="SqlDataSource1" >
            <Columns>
                <asp:BoundField DataField="nome" HeaderText="nome" SortExpression="nome" />
                <asp:BoundField DataField="contid" HeaderText="contid" SortExpression="contid" />
                <asp:BoundField DataField="id_naz" HeaderText="id_naz
" InsertVisible="False" ReadOnly="True" SortExpression="id_naz" />
                <asp:TemplateField HeaderText="prova">
                    <ItemTemplate>
                        <asp:DropDownList ID="DropDownList1"  runat="server" DataSourceID="Sqldatasource2" DataTextField="cont" DataValueField="idcont"></asp:DropDownList>
                        
<asp:sqldatasource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:santaunionedbConnectionString %>" SelectCommand="SELECT xxx as cont ,xx as idcont,FROM a INNER JOIN b ON a.contid = b.id_cont WHERE (.id_naz = @id)">
    <SelectParameters>
        
    <asp:ControlParameter ControlID="GridView1" DbType="Decimal" Name="id" PropertyName="SelectedValue" />
    </SelectParameters>
                        </asp:sqldatasource>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:santaunionedbConnectionString %>" SelectCommand="SELECT [nome], [continente_id], [id_naz] FROM [C]"></asp:SqlDataSource>