webForumDet fria alternativet

Repeater eller liknande...

.NET

24 svar · 565 visningar · startad av Eminem · sida 2 av 2

Frågan, av Eminem

Tjena mors! Är en nybörjare på .NET, men har jobbat med ASP innan. Har följande kod som jag skall ha i ett forum. <!-- Post 1 --> <tr> <td bgcolor="#9da87d"> <table cellspacing="0" cellpadding="1" width="600" border="0"> <tr> <td><img src="/data/img/1px.gif" width="1" height="1" border="0" alt=""></td> </tr> <tr> <td width="5"><img src="/data/img/1

Läs frågan i sin helhet →
Medlem sedan dec. 200313 inlägg
#21

Är fortfarande tomt... :(

Medlem sedan juni 20011 732 inlägg
#22

Hm, kan inte hitta något fel nu... om vi gör på enklast möjliga sätt, fungerar det här om du skriver det i pageloaden:

string s = "Provider=Microsoft.Jet.OleDB.4.0; Data Source=" + Server.MapPath("/data/db/forum.mdb");

OleDbConnection conn = new OleDbConnection(s);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM threads", conn);

DataTable dt = new DataTable();	
da.Fill(dt);

myDG.DataSource = dt;
myDG.DataBind();
Medlem sedan dec. 200313 inlägg
#23

Det fungerade inte det heller... Men när jag skapade en ny sida och la in den koden så fungerade det kanon. Alltså så är det något litet som står fel någonstans.

En ny fråga dök upp dock. Jag hämtar ju användaren ifrån en annan tabell med hjälp av användar_id i tabellen threads. Hur gör man då?

I vanlig ASP så hade jag bara kört en ny SQL i loopen, men här finns det ju ingen loop utan en repeater...

Medlem sedan juni 20011 732 inlägg
#24

Jaa, nu ser jag vad det var för fel... du startar aldrig pageloaden, då är det lite svårt exekvera kod där. :)

private void InitializeComponent()
{
  [b]this.Load += new System.EventHandler(this.Page_Load);[/b]
}

En ny fråga dök upp dock. Jag hämtar ju användaren ifrån en annan tabell med hjälp av användar_id i tabellen threads. Hur gör man då?

Du kan plocka ut enskilda värden ur din datatable, exempelvis:

string s = dt.Rows[0]["minkolumn"].ToString();

...som hämtar värdet i första raden i kolumnen "minkolumn" och lägger detta i strängen s. Denna kan du sedan använda för att hämta data i din andra tabell. Men kanske kan du göra en join direkt i din första sql-sats så du hämtar data från båda kolumnerna direkt?

I vanlig ASP så hade jag bara kört en ny SQL i loopen, men här finns det ju ingen loop utan en repeater...

Jo, det körs en slags loop i en repeater (den har ett event som heter ItemDataBound som körs för varje item (rad) där du kan lägga kod) och du kan naturligtvis även loopa igenom din datatable. Så du har alla möjligheter att gå igenom värden både innan, under och efter att data binds till din kontroll!

Medlem sedan dec. 200313 inlägg
#25

Kanon!

Tack för all hjälp. Skall sitta och pilla lite med det här själv nu :)

266 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)