Pergunta

Saudações!

Eu estou procurando alguns conselhos sobre uma abordagem para a exibição de dados em um FormView com base em uma seleção de um DropDownList dentro desse controle FormView. Por exemplo, eu tenho um UserControl com o seguinte:

<asp:XmlDataSource ID="xdsMyXmlData" runat="server" EnableCaching="false" XPath="Root/Membership" />
<asp:FormView ID="fvwMyFormView" runat="server" DataSourceID="xdsMyXmlData">
    <ItemTemplate>
        <div>
            <h2><%# XPath("Title") %></h2>

            <fieldset>
                <asp:DropDownList ID="ddlMemberTypes" runat="server" DataSource='<%# XPathSelect("MenuItems/*") %>'></asp:DropDownList>
            </fieldset>
            <table>
                <thead>
                    <tr>
                        <th><%# XPath("Columns/Name") %></th>
                        <th><%# XPath("Columns/Age") %></th>
                        <th><%# XPath("Columns/DateJoined")%></th>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="rptMembershipInfo" runat="server" DataSource='<%# XPathSelect("Members/*") %>'>
                        <ItemTemplate>
                            <tr>
                                <th><%# XPath("Data/Name") %></th>
                                <td><%# XPath("Data/Age") %></td>
                                <td><%# XPath("Data/DateJoined") %></td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </tbody>
            </table>
        </div>    
    </ItemTemplate>
</asp:FormView>        

O UserControl OnLoad () se parece com isso até agora:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    string l_XmlData = MyControllerClass.GetMembershipTableXml(0);
    xdsMyXmlData.Data = l_XmlData;
}

Eu gostaria de ser capaz de passar o valor do item selecionado da DropDownList em GetMembershipTableXml (), a fim de recuperar o XML correspondente e, em seguida, usá-lo para preencher os valores do FormView. Qual seria a melhor maneira é fazer isso? Fazendo uma volta Response.Redirect para a página atual usando o valor DropDownList selecionado como uma variável seqüência de consulta? Estou esperando há uma abordagem melhor. O que você acha?

Foi útil?

Solução

Você pode criar um evento para OnSelectedItemChanged em seu DropDownList; quando isso ocorre, você pode pegar o item selecionado, e chamar sua função GetMembershipTableXml.

Finalmente, não se esqueça de chamar DataBind no controle FormView para atualizar os valores:)

I pensar é isso que você está depois, espero que ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top