Création d'un tableau dynamique pour .NET code-behind C#
Je vais avoir des problèmes lors de la création d'une table et de mettre les données extraites à partir de SQL en elle. Ma solution pour le moment est de créer une table en Défaut.aspx, puis de créer les lignes et les cellules dans le code C#.
Mon aspx code:
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
Select a topic to view.
</h2>
<asp:Table ID="solutions" runat="server" Width="100%">
</asp:Table>
</asp:Content>
Et où toute l'action doit, mais n'arrive pas:
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HtmlAgilityPack;
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection anca = new System.Data.SqlClient.SqlConnection();
anca.ConnectionString = "Data Source=anca;Initial Catalog=servicedesk;
anca.Open();
SqlCommand sub = new SqlCommand("SELECT TITLE FROM dbo.Solution", anca);
SqlDataReader sReader = sub.ExecuteReader();
List<String> subject = new List<string>();
int solCount = 0;
while (sReader.Read())
{
subject.Add(sReader.ToString());
solCount++;
}
sReader.Close();
TableRow newRow = new TableRow();
TableCell newcell = new TableCell();
int adder = 0;
while (adder <= solCount)
{
solutions.Rows.Add(newRow);
for (int i = 0; i <= 6; i++)
{
newRow.Cells.Add(newcell);
newcell.Text = subject[adder].ToString();
}
}
}
}
}
Évidemment, je suis un peu vert avec tout ça. Essentiellement ce qui se passe est qu'il retire tout de la solution des titres à partir d'une base de données et je veux que les titres de chaque être dans une cellule de leur propre, où je vais aller sur les relier aux pages respectives. Heureusement, cela a du sens, si ce n'est que je suis heureux de vous fournir plus d'informations.
Vous devez vous connecter pour publier un commentaire.
Vous êtes d'abord l'ajout de ligne vide à la table, puis le remplissage de la ligne avec le contenu. Vous devez ajouter la ligne après son rempli avec le contenu de la cellule (c'est à dire après la boucle, pas avant). Aussi, si je ne suis pas le voir mal, vous n'êtes pas augmenter "additionneur" chaque boucle de sorte qu'il devrait tomber dans une boucle infinie. Semble aussi que vous êtes en tirant uniquement à titre de DB...donc je ne sais pas pourquoi vous avez été d'essayer d'ajouter des 7 colonnes/cellules de chaque ligne. Par la façon dont ce détachement d'office alors laissez-moi savoir si j'ai fait quelque chose de mal et je vais le corriger le plus vite possible :).
Je pense que d'une façon plus élégante sera à l'aide de ListView ou d'un Répétiteur de contrôle, plutôt que de générer dynamiquement le tableau comme ça.
'MSI' est en partie droite (boucle infinie..) et l'utilisation ListView ou d'un Répétiteur ou GridView et ces contrôles prendre soin de le nombre de lignes que votre code d'accès aux données de rendement. Dans le cas, si vous souhaitez créer votre propre site pour quelque raison que ce soit, alors voici un exemple de code:
Voici un exemple de MSDN.