Avatar billede agertoft Nybegynder
06. oktober 2004 - 11:18 Der er 8 kommentarer og
1 løsning

Fra aspx-incode til codebehind

Jeg har lavet en simpel side, som skal vise noget tekst fra min database i et template. Mit problem er, at det er lavet som et VB-script i min ascx-fil. Jeg har oversat det til C# og lagt det ind i min codebehind fil, men nu bliver datavisningen ikke vist længere. Mit VB-script ser således ud:

<script language="VB" runat="server">   
  Sub Page_Load(sender As Object, e As EventArgs)
      fillData()
  End SUb

  sub fillData()
    Dim conn As MySqlConnection
    Dim adapter As MySqlDataAdapter
    Dim connectionString as string
    connectionString = "Database=mindb;Data Source=mindatasource;User Id=mitid;Password=mitpass;"

    conn = new MySqlConnection(connectionString)
    conn.Open()
    Dim sql = "SELECT * FROM article"
    adapter = new MySqlDataAdapter(sql, conn)
    Dim ds As Dataset = new DataSet()
    adapter.Fill(ds)
    dtList.DataSource = ds
    dtList.DataBind()
  end sub
</script>

Det jeg så har gjort er at smide dette ind i min codebehind-page load metode:
---
MySqlConnection conn;
MySqlDataAdapter adapter;
string connectionString = "Database=mindb;Data Source=minsource;User Id=mitid;Password=mitpass";
string sql = "SELECT * FROM article";
DataSet ds = new DataSet();
dtList = new DataList();

conn = new MySqlConnection(connectionString);
conn.Open();

adapter = new MySqlDataAdapter(sql,conn);

adapter.Fill(ds);
dtList.DataSource = ds;
dtList.DataBind();
---

Hvordan får jeg fat i mit DataList objekt i min aspx fil? Da det lå som et VB script, blev det bare kaldt med:

<ASP:DataList id="dtList" RepeatColumns="1" runat="server" Width="400px">

Men det kan jeg ikke længere. Hvordan gør jeg dette?
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:24 #1
du sørger bare for at deklerere den i toppen:
protected DataList dtList;

så skulle det være tilstrækkeligt
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:25 #2
(os så skal det jo så være på VB's - sorry... det er vel noget i stil med
Dim dtList As DataList
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:26 #3
og den der (dtList = new DataList();) skal du så heller ikke lave ... det fikser frameworket.
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:27 #4
(og siden jeg åbenbart ikke har forståelse for at pudse mine briller - kan du se bort fra 11:25:18 :oD)
Avatar billede agertoft Nybegynder
06. oktober 2004 - 11:29 #5
Ja, jeg har selvfølgelig husket at erklære min DataList variabel som dtList i codebehind filen ;-) men problemet er der stadig...
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:31 #6
Hvad går den her så ud på ?
dtList = new DataList();
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:33 #7
hov.... jeg tror vi sidder og snakker forbi hinanden.
det jeg har skrevet vil kun virke hvis du bevarer denne her i din aspx-fil :

<ASP:DataList id="dtList" RepeatColumns="1" runat="server" Width="400px">

alternativt skal du tilføje kontrollen til kontroltræet dynamisk fra din code-behind.

begge dele kan lade sig gøre - hvad vil du helst ?

mvh
Avatar billede agertoft Nybegynder
06. oktober 2004 - 11:33 #8
ahhhh... så fandt jeg fejlen. Jeg oprettede et DataList objekt i min codebehind-fil. Det skal man jo slet ikke, når det bliver oprettet i <ASP:Tag> i min ascx-fil. Så jeg fjernede bare dtList = new DataList(); som du skrev :-)

Læg et svar, tak for at du åbnede mine øjne hehe ;-)
Avatar billede snepnet Nybegynder
06. oktober 2004 - 11:34 #9
velbekomme :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester