2009-02-25 4 views
2

Je dois modifier un objet complexe avec des propriétés complexes à l'aide d'un formulaire Web. Par exemple, éditer un enregistrement "Information utilisateur" qui contient toutes sortes d'informations sur un utilisateur, y compris des choses complexes comme un arbre unique pour chaque utilisateur. Ce que j'ai fait est le suivant:ASP.NET: Méthode recommandée pour lier Usercontrols à l'intérieur d'un formulaire

J'ai créé un formulaire Web avec un contrôle FormView et défini l'objet que je veux lier comme source de données du FormView.

Dans les modèles Formview j'ai mis Usercontrols pour lier chaque propriété d'objet. La seule chose que je passe à l'Usercontrol est le nom de la propriété qu'il est censé lier.

À l'intérieur de la commande Usercontrol, j'ai créé des contrôles côté serveur en fonction du type de propriété que l'Usercontrol est censé afficher. Si c'est une propriété simple comme une chaîne, je l'ai fait quelque chose comme ceci:

<asp:TextBox ID="textBox1" runat="server" Text='<%# Bind(PassedAttributeName) %>' /> 

Et cela fonctionne très bien.

Mon problème est avec les propriétés complexes comme les choses qui supposent apparaître dans une vue arborescente. Je ne suis pas vraiment sûr comment est-ce que je suppose pour lier la vue d'arbre dans mon Usercontrol avec une propriété d'un objet qui est une Datasource du Formview contenant ...

Si vous avez une idée sur comment cela peut-il être fait, ou si vous pensez que je fais tout ce mal, toute aide sera appréciée.

Merci.

Répondre

1

Vous pouvez lier la source de données d'un contrôle serveur à une propriété de l'objet parent.

Ce code ne peut être correct à 100%, mais quelque chose comme si

<asp:FormView Id="formView1" runat="server"> 
    <asp:TextBox ID="textBox1" runat="server" Text='<%# Bind("FirstName")%>'/> 
    <asp:Repeater ID="repeater1" runat="server" DataSource='<%# Bind("Addresses")%>'> 
    //etc 
    </asp:Repeater> 
</asp:FormView> 

En supposant que vous liez le FormView à un objet qui a une propriété des adresses qui est une collection de plusieurs objets.

Questions connexes