Domanda

Un saluto!

Sto cercando qualche consiglio riguardo un approccio alla visualizzazione dei dati in un FormView basato su una selezione di un DropDownList all'interno di quel controllo FormView. Ad esempio, ho un UserControl con il seguente:

<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>        

OnLoad () di UserControl sembra così finora:

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

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

Vorrei poter passare il valore dell'elemento selezionato di DropDownList in GetMembershipTableXml () per recuperare l'XML corrispondente e quindi utilizzarlo per popolare i valori di FormView. Quale sarebbe il modo migliore per farlo? Stai facendo un Response.Redirect alla pagina corrente usando il valore DropDownList selezionato come variabile della stringa di query? Spero che ci sia un approccio migliore. Cosa ne pensi?

È stato utile?

Soluzione

Puoi creare un evento per OnSelectedItemChanged sul tuo DropDownList; in questo caso, puoi prendere l'elemento selezionato e chiamare la tua funzione GetMembershipTableXml.

Infine, non dimenticare di chiamare DataBind sul controllo FormView per aggiornare i valori :)

Penso che sia quello che stai cercando, spero che sia di aiuto!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top