Avatar billede tanzaweb Nybegynder
18. marts 2004 - 09:41 Der er 8 kommentarer og
1 løsning

'System.Web.UI.WebControls.Panel' does not contain a definition f

Jeg får en fejl som siger Panelet ikke indeholder en defination for drpData
Fejlen:
'System.Web.UI.WebControls.Panel' does not contain a definition for 'drpData'

heri:
strvKategori = tbvKategori.drpData.SelectedItem.Value;

Panelet med dropdown ser således ud:

<asp:panel ID="tbvKategori" runat="server"><asp:dropdownlist ID="drpData" DataTextField="kategoriNavn" DataValueField="kategoriId" Width="350px" runat="server"/></asp:panel>

og her kommer der en talværdi fra.

Her er hele koden for INSERT INTO
string strvNummer, strvNavn, strvBeskriv, strvBilled, strvPris, strvKategori;
        string strSQL;
        strvNummer = tbvNummer.Text;
        strvNavn = tbvNavn.Text;
        strvBeskriv = tbvBeskriv.Text;
        strvBilled = filepath.ToString();
        strvPris = tbvPris.Text;
        strvKategori = tbvKategori.drpData.SelectedItem.Value.ToString();
        strSQL = "INSERT INTO varelist (vNummer, vNavn, vBeskriv, vBilled, vPris, vKategori) Values (";
            strSQL += strvNummer + ", '";
            strSQL += strvNavn + "', '";
            strSQL += strvBeskriv + "', '";
            strSQL += strvBilled + "', ";
            strSQL += strvPris + ", ";
            strSQL += strvKategori + ")";
            //Response.Write(strSQL);
            OleDbConnection myConnection = new OleDbConnection(@"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\eHandel\abcd.mdb" );
            myConnection.Open();
            OleDbCommand myCommand = new OleDbCommand(strSQL, myConnection );
            myCommand.ExecuteNonQuery();
            myConnection.Close();
            lblBesked.Text ="Du har oprettet en Varer som er " + tbvNavn.Text;
            btInsert.Enabled=false;
Avatar billede jakobg Nybegynder
18. marts 2004 - 10:38 #1
strvKategori = drpData.SelectedItem.Value;

Altså UDEN tbvKategori foran. Nok er din dropdown nested inden i panel'et, men det er ikke sådan du tilgår elementet.
Avatar billede burningice Nybegynder
18. marts 2004 - 10:38 #2
prøv at læs www.asp.net for at få nogle grundlæggende ting på plads

Control ctrl = tbvKategori.FindControl("drpData");
if (ctrl == null) {
  // control ikke fundet
}
DropDownList ddl = (DropDownList)ctrl;
ddl.SelectedItem.Value;


men, det er lidt af en omvej... hvorfor erklærer du den ikke bare som et field i din klasse?

protected System.Web.UI.WebControls.DropDownList drpData;

og få tilgår du den med

drpData.SelectedItem.Value;
Avatar billede tanzaweb Nybegynder
18. marts 2004 - 11:14 #3
har selv fundet løsningen med:

DropDownList myDrpBox;
        myDrpBox = (DropDownList) tbvKategori.FindControl("drpData");

og så dette:

strvKategori = myDrpBox.SelectedItem.Value.ToString();
Nu virker det
Avatar billede tanzaweb Nybegynder
18. marts 2004 - 11:15 #4
det hele ser således ud

string strvNummer, strvNavn, strvBeskriv, strvBilled, strvPris, strvKategori;
        string strSQL;
        DropDownList myDrpBox;
        myDrpBox = (DropDownList) tbvKategori.FindControl("drpData");
        strvNummer = tbvNummer.Text;
        strvNavn = tbvNavn.Text;
        strvBeskriv = tbvBeskriv.Text;
        strvBilled = fullpath.ToString();
        strvPris = tbvPris.Text;
        strvKategori = myDrpBox.SelectedItem.Value.ToString();
        strSQL = "INSERT INTO varelist (vNummer, vNavn, vBeskriv, vBilled, vPris, vKategori) Values (";
            strSQL += strvNummer + ", '";
            strSQL += strvNavn + "', '";
            strSQL += strvBeskriv + "', '";
            strSQL += strvBilled + "', ";
            strSQL += strvPris + ", ";
            strSQL += strvKategori + ")";
            //Response.Write(strSQL);
            OleDbConnection myConnection = new OleDbConnection(@"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\eHandel\abcd.mdb" );
            myConnection.Open();
            OleDbCommand myCommand = new OleDbCommand(strSQL, myConnection );
            myCommand.ExecuteNonQuery();
            myConnection.Close();
            lblBesked.Text ="Du har oprettet en Varer som er " + tbvNavn.Text;
            btInsert.Enabled=false;

slut herfra
Avatar billede burningice Nybegynder
18. marts 2004 - 11:19 #5
... og hvordan var det lige mit indlæg ser ud, hvilket jeg kom med en halv time før dit ?!?!
Avatar billede jakobg Nybegynder
18. marts 2004 - 11:28 #6
Ja, det syns jeg sgu også der var RET tarveligt gjort. Bad karma herfra...
Avatar billede tanzaweb Nybegynder
18. marts 2004 - 11:37 #7
fik svaret før fra asp.net forum

sorry

men jeg er meget meget ny til asp.net

men jeg syntes stadig ikke de er ens, der nogle forskelle som jeg ikke kender?
Avatar billede burningice Nybegynder
18. marts 2004 - 11:45 #8
eneste forskel er da at jeg tjekker for null først for at se om kontrollen blev fundet... ellers er mit indlæg og "din" løsning helt ens
Avatar billede tanzaweb Nybegynder
18. marts 2004 - 11:57 #9
ok
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