Ajuda DropDownList dentro de DetailsView C#

ReginoCoeli

Power Member
Boas.

Tenho 2 dropdownlist dentro de um template de inserção numa detailsview.
O dropdownlist 2 está dependente do 1º. Ambos estão a ir buscar os valores a um ficheiro XML.

O problema é que não consigo fazer essa associação dentro do detailsview.

O que tenho dentro do DetailsView é:
Código:
<asp:TemplateField HeaderText="Marca" SortExpression="marca">
                <InsertItemTemplate>
                    <asp:DropDownList ID="ddlMarcas" runat="server" DataSourceID="xmlDSMarcas" 
                        DataTextField="nome" DataValueField="nome" AppendDataBoundItems="true" SelectedValue='<%# Bind("marca")%>' 
                        AutoPostBack="True" 
                        onselectedindexchanged="ddlMarcas_SelectedIndexChanged" Width="141px" 
                        ondatabound="ddlMarcas_DataBound">
                    </asp:DropDownList>
                    <asp:XmlDataSource ID="xmlDSMarcas" runat="server" 
                        DataFile="~/App_Data/XMLDefinicoes.xml" XPath="definicoes/marcas/marca">
                    </asp:XmlDataSource>
                </InsertItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Modelo" SortExpression="modelo">
                <InsertItemTemplate>
                    <asp:DropDownList ID="ddlModelos" runat="server" DataSourceID="xmlDSModelos" 
                        DataTextField="descricao" DataValueField="descricao" AppendDataBoundItems="true" 
                        SelectedValue='<%# Bind("modelo") %>' Width="141px">
                    </asp:DropDownList>
                    <asp:XmlDataSource ID="xmlDSModelos" runat="server" 
                        DataFile="~/App_Data/XMLDefinicoes.xml" 
                        XPath="definicoes/marcas/marca/modelos/modelo" ></asp:XmlDataSource>
                </InsertItemTemplate>
            </asp:TemplateField>

E no método ddlMarcas_SelectedIndexChanged(object sender, EventArgs e):
Código:
DropDownList ddlAuxMarca = new DropDownList();
ddlAuxMarca = (DropDownList)this.dvInserirViatura.FindControl("ddlMarcas");

DropDownList ddlAuxModelo = new DropDownList();
ddlAuxModelo = (DropDownList)this.dvInserirViatura.FindControl("ddlModelos");

XmlDataSource xmlDS_AuxModelo = new XmlDataSource();
xmlDS_AuxModelo = (XmlDataSource)this.dvInserirViatura.FindControl("xmlDSModelos");
ddlAuxModelo.Enabled = true;

xmlDS_AuxModelo.XPath= "definicoes/marcas/marca[@id=" + (ddlAuxMarca.SelectedIndex + 1) + "]/modelos/modelo";

E dentro do XML tenho:
Código:
<marca id="2" nome="Alfa Romeo">
            <modelos>
                <modelo id="1" descricao="159"></modelo>
                <modelo id="2" descricao="Giulietta"></modelo>
                <modelo id="3" descricao="MiTO"></modelo>
            </modelos>
        </marca>
.
.
.

Assim está me a dar um erro: "Databiding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control".

Gostava que me ajudassem ou a corrigir o erro ou então outra maneira a que consiga fazer o que quero.
 
Back
Topo