[ASP.NET] DropDownList vullen vanuit database

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12:39
Goed. Ik vind het echt geweldig om al deze nieuwe functies uit te proberen in asp.net wat ik overigens echt een hele stoere omgeving vind :) Maar na 8 uur te prutsen aan mijn simpel dropdownlistje geef ik het op. Dit is mijn code en er komt NIETS in mijn list:
ASP.NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<%@ Page Language="c#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Odbc" %>
<%@ import Namespace="System.Web.UI.WebControls" %>
<script runat="server">
    public void Page_Load(object sender, System.EventArgs e)
    {
        String mySQLConnStr = "driver={MySQL};en de rest censuur. string werkt ergens anders wel";
        OdbcConnection myConnection = new OdbcConnection(mySQLConnStr);
        string SQL = "SELECT ListID, ListItem FROM tblList";
        
        OdbcDataAdapter myCommand2 = new OdbcDataAdapter(SQL, myConnection);
        DataSet ds = new DataSet();
        myCommand2.Fill(ds, "tblList");
        
        DropDownList List_edit = new DropDownList();
        List_edit.DataSource=ds.Tables["tblList"].DefaultView;
        List_edit.DataTextField = "ListItem";
        List_edit.DataValueField = "ListID";
        
        List_edit.DataBind();
        
        Trace.Warn("conn", mySQLConnStr);
        Trace.Warn("SQL", SQL);
    }
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:dropdownlist id="List_edit" runat="server" rows="1"></asp:dropdownlist>
    </form>
</body>
</html>



Gebruikte taal is C# en de database is van MySQL. Ergens anders heb ik een datagrid staan met dezelfde database en die werkt wel. Dus dat kan ik outrulen als mogelijke fout. Ik heb het ook nog geprobeerd met voorbeelden met een datareader.

Trouwens gelijk een nadeel van het hele .net gebeuren. Er zijn zoveel wegen naar rome dat ik de weg af en toe kwijtraak en nooit in rome komt

Mijn probleem: Geen data in de dropdownlist dus ... wie ziet mijn fout?

[ Voor 11% gewijzigd door Scharnout op 22-05-2003 00:55 ]

And Bob's your uncle ...


Verwijderd

Volgende regel weghalen:

DropDownList List_edit = new DropDownList();

je declareert daar namelijk een dropdownlist in method scope, deze 'overruled' ahw de door ASP.NET zelf globaal gedefineerde List_Edit die in je web form staat en waaraan je eigenlijk wilt databinden.

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12:39
Poehe! Gewoon zo simpel. Mijn excuus :)

Alleen heel vervelend dat het niet werkt in een code-behind bestand. Hoe kan dat nou? Dan zegt die dat List_edit niet bestaat.

[ Voor 63% gewijzigd door Scharnout op 22-05-2003 02:38 ]

And Bob's your uncle ...


Verwijderd

Als je de code-behind methode gebruikt moet je juist weer wel de DropDownList declareren, globaal en protected:

code:
1
2
3
4
5
6
public class Page : System.Web.UI.Page
{
    protected DropDownList List_edit;

    ....
}


De .aspx page compiler, die van jouw .aspx bestand een C# class maakt die afleidt (inherit) van je code-behind pagina zorgt er dan voor dat List_edit verwijst naar de correcte webcontrol, je hoeft de variabele dan ook niet zelf toe te wijzen.

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 12:39
A small step for the wise, an enormous leap for me the n00b :)

Thanks! Werkt perfect. Had toevallig het antwoord half al gevonden op Google, maar dit was net nog het kleine duwtje wat ik nodig had. Bedankt!

And Bob's your uncle ...