Question

Salutations!

Je cherche des conseils concernant une approche d'affichage des données dans un FormView basée sur une sélection d'une liste DropDownList au sein de ce contrôle FormView. Par exemple, j'ai un UserControl avec ce qui suit:

<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 () de UserControl ressemble à ceci:

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

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

J'aimerais pouvoir transmettre la valeur de l'élément sélectionné par DropDownList à GetMembershipTableXml () afin de récupérer le code XML correspondant, puis de l'utiliser pour renseigner les valeurs de FormView. Quel serait le meilleur moyen de le faire? Faire un Response.Redirect retour à la page en cours en utilisant la valeur DropDownList sélectionnée comme une variable de chaîne de requête? J'espère qu'il y a une meilleure approche. Qu'en penses-tu?

Était-ce utile?

La solution

Vous pouvez créer un événement pour OnSelectedItemChanged sur votre DropDownList; lorsque cela se produit, vous pouvez récupérer l'élément sélectionné et appeler votre fonction GetMembershipTableXml.

Enfin, n'oubliez pas d'appeler DataBind sur votre contrôle FormView pour mettre à jour les valeurs:)

Je pense que c'est ce que vous cherchez, espérons que cela aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top