Je lie une source de données Object à une vue de grille. Mon objet a une collection d'éléments dans l'une des propriétés. Ce qui est une liste. Comment puis-je boucler à travers cela et lier les éléments à une colonne dans GridView ?.Liaison de vue de grille
0
A
Répondre
0
Edit: mis à jour pour appeler une méthode dans le code sous-jacent pour générer les balises html pour la collection.
Dans votre balisage ASPX vous pourriez avoir quelque chose comme ce qui suit:
<asp:GridView ID="myGridView" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:BoundField HeaderText="Item Name" DataField="Name" />
<asp:TemplateField HeaderText="Collection Field">
<ItemTemplate>
<%# ((_Default)Page).GetHtmlForList(DataBinder.Eval(Container.DataItem, "List"))%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
alors dans votre code derrière vous pourriez avoir quelque chose comme ceci:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
myGridView.DataSource = GetCollection();
myGridView.DataBind();
}
}
public string GetHtmlForList(object value)
{
string html = "";
List<string> list = (List<string>)value;
foreach (string item in list)
html += item + "<br/>";
return html;
}
private List<MyClass> GetCollection()
{
List<MyClass> coll = new List<MyClass>();
coll.Add(new MyClass { Name = "First Item", List = new List<string>(new string[] { "1", "2", "3" }) });
coll.Add(new MyClass { Name = "Second Item", List = new List<string>(new string[] { "Apples", "Pears", "Oranges" }) });
coll.Add(new MyClass { Name = "Third Item", List = new List<string>(new string[] { "Red", "Green", "Blue" }) });
return coll;
}
}
public class MyClass
{
public string Name { get; set; }
public List<string> List { get; set; }
}
1
obtenir la collection de l'objet et la lier à l'aide
myGridView.DataSource = myCollection;
myGridView.DataBind();
0
Pourriez-vous pas un répéteur à l'intérieur du Col. template, et simplement lier votre liste dans le RowDataBound?
Questions connexes
- 1. vue grille combobox
- 2. La vue de grille de données est lente
- 3. ASP.NET une vue de grille extensible?
- 4. Liaison à une commande dans une grille de données
- 5. Comment rendre une ligne de vue de grille modifiable?
- 6. Liaison de grille à la propriété d'un objet
- 7. Référencement d'éléments dans une vue en grille
- 8. Sélection à partir d'une vue en grille
- 9. Vous cherchez un exemple de sélection de ligne (s) avec plusieurs colonnes à partir d'une vue de grille et ajoutez-les à une autre vue de grille?
- 10. Comment déboguer la liaison de mes ViewModels à ma vue?
- 11. Liaison dans une colonne de texte de la grille de données WPF
- 12. Ma commande de ligne n'a pas de nom de commande pour ma vue de grille
- 13. Liaison d'une grille winforms à des classes subsoniques .Net
- 14. Comment empêcher le tri de la vue de la grille de données
- 15. Erreur lors de la définition de la source de données pour une vue en grille
- 16. Comment obtenir les valeurs d'index de ligne correctes de la vue de grille après le tri
- 17. Comment remplir dynamiquement une grille WPF à l'aide de la liaison de données?
- 18. ASP.NET - Vue grille et affichage liste avec pagination
- 19. comment obtenir toutes les propriétés d'un contrôle utilisateur [Vue grille]
- 20. étendre la largeur des colonnes d'une vue sur la grille
- 21. Liaison à la page datacontext à partir d'une zone de liste déroulante dans une grille de données
- 22. comment insérer une ligne dans la vue grille
- 23. Comment puis-je évaluer l'objet lié dans une vue grille
- 24. Rendre une ligne entière cliquable dans une vue en grille
- 25. Sécurité de grille dans les frameworks de grille
- 26. Liaison de données dans ASP.NET
- 27. Liaison de liste générique Array à GridView
- 28. La liaison de données est un bon moyen de connecter une vue à un modèle
- 29. Liaison de la vue SQL Server à Access db: question de performance
- 30. Comment puis-je transférer une vue de grille à un arraylist dans .NET?
Si j'ai raison, chaque ligne est mappée à l'un de vos objets, mais vous souhaitez que l'une des colonnes soit liée à une propriété de cet objet qui est une collection. Ma grande question est comment exactement avez-vous l'intention d'afficher cette collection? Asp.Net ne sait pas comment rendre une collection lors de la liaison d'une colonne. Si vous nous faites savoir comment vous voulez l'afficher alors nous pourrions être en mesure de vous aider. – Josh
A toString() de l'objet. – Greens
J'ai révisé ma réponse pour fournir une solution [pas très élégante] à votre problème. –