2013-03-26 3 views
-1

J'essaye de mettre en place un site Web pour l'afficher lors de la réception de données d'un service Web.ASP.net meilleure façon de créer cette table?

example http://i47.tinypic.com/205z4wn.png

Quelle est la meilleure façon d'aller sur l'affichage de cette table? J'ai eu un gridview pour commencer mais ensuite je voulais beaucoup d'informations dans la 3ème colonne et deux boutons au lieu de 1 dans le quatrième. Les données relatives à la marque, au prix et au nom du produit proviennent de mon appel au service Web. J'ai donc besoin de répéter les lignes pour chaque élément que je reçois de cet appel de service Web.

Éditer - Ma réponse ci-dessous sur la façon dont je l'ai fait, j'ai fini par créer simplement du code html dans le code au lieu de l'afficher comme je le voulais.

Répondre

1

Il s'avère que la meilleure façon d'avoir un affichage comme je l'ai montré dans l'image est simplement de créer une table html à partir de codebehind et de remplir les sections requises avec les données requises.

Je mis une table

<asp:Table Width="100%" ID="tblQuotes" runat="server"> 
<asp:TableHeaderRow ID="Headers" runat="server"> 
    <asp:TableHeaderCell>Brand</asp:TableHeaderCell> 
    <asp:TableHeaderCell>Price</asp:TableHeaderCell> 
    <asp:TableHeaderCell>Information</asp:TableHeaderCell> 
    <asp:TableHeaderCell>Purchase</asp:TableHeaderCell> 
</asp:TableHeaderRow> 
</asp:Table> 

Ensuite, à partir du code derrière ajouté dans les cellules et les lignes.

par exemple

row.Cells.Add(colBrand);      
Image logo = new Image(); 
logo.ImageUrl = imageUrl; 
colProvider.Controls.Add(logo); 
1

Je pense que la façon la plus simple de faire cela est d'utiliser une source de données, ou n'est-ce pas une option pour vous?

Repeater1.DataSource = values; 
Repeater1.DataBind(); 
+0

Je peux le faire pour deux des colonnes, mais comment pourrais-je faire avec la 3ème colonne qui a plusieurs valeurs? Je ne sais pas comment je pourrais mettre cela dans un datatable. – saintsfanuk

+0

Que diriez-vous d'un répéteur dans un répéteur comme il explique ici: http://stackoverflow.com/questions/2923137/repeater-in-repeater et comment vous l'enregistrez dans la base de données est le même parce que vous pouvez les collecter dans le code derrière –

0

Vous ne devrez pas faire cela si vous retournez quoi que ce soit qui confirme avec l'interface IEnumerable de l'API.

par exemple. vous pouvez avoir un résultat api dans datatable ou list. Les deux confirme avec l'interface IEnumerable. Vous pouvez ensuite simplement lier ces objets à votre répéteur ou à votre grille.

Une autre option consiste à utiliser le contrôle littéral asp.net. Cela vous donnera un espace réservé. Pour l'instant, je peux voir que vous n'avez pas besoin de persister l'état de cette page si littérale peut aussi faire du bien ici. Pour utiliser le contrôle littéral, vous devrez peut-être générer le code HTML de manière dynamique. Cependant, il vous donnera un contrôle parfait sur html généré.

+0

Alors, comment ferais-je cela? : \ – saintsfanuk

+0

créer une chaîne avec ce que vous voulez dans l'espace réservé et l'assigner à littéral. Cela peut être une construction html complète. Attention, ici, il ne se comportera pas comme un contrôle côté serveur. Ce sera du html pur. –

+0

Désolé n'était pas clair, je parlais de la première partie de votre réponse qui semblait la meilleure chose à utiliser. – saintsfanuk

Questions connexes