Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Enum i ASP.NET?

Postades av 2004-01-24 12:27:47 - Fredric Sannebro, i forum asp.net generellt, Tråden har 24 Kommentarer och lästs av 976 personer

Hej!
Har problem med att enum att funka (ja, jag är nybörjare...). Här ett udrag ur koden:

<code>
protected System.Web.UI.WebControls.Label lblInsertName;
protected System.Web.UI.WebControls.TextBox txtPersNumber;
protected System.Web.UI.WebControls.Label lblInsertPersNumber;
protected System.Web.UI.WebControls.Button btnSend;
protected System.Web.UI.WebControls.Label lblResultName;
protected System.Web.UI.WebControls.Label lblResultPersNumber;
protected System.Web.UI.WebControls.DropDownList dpdList;
protected System.Web.UI.WebControls.TextBox txtName;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnSend.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

enum Country {
Sverige,
Norge,
}

private void Button1_Click(object sender, System.EventArgs e) {
Country myCountry = dpdList.SelectedValue;// men här skiter det sig så att säga...!!??
</code>

Min tanke är alltså att jag ska kolla vad som är valt i en selectlista som jag har i min aspx-sida. Vad är felet?

Tack för hjälpen!



Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 00:18:44 - Thomas Vanhaniemi

Hej!

Jag har aldrig programmerat C# men jag kan gissa utifrån mina kunskaper inom VB.NET istället.

Testa skriv såhär istället.
<code>
enum Country {
Sverige = 0,
Norge = 1,
}
</code>
Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 11:26:29 - Fredric Sannebro

hej och tack för ditt engagemang. tyvärr funkade det inte...

Tack i alla fall!


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 13:40:26 - Oskar Johansson

Testa SelectedIndex istället


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:08:54 - Fredric Sannebro

hej!
Nej, Onkelborg, det funkade inte heller. Jag tror att jag kanske borde förtydliga mitt problem lite...:

I aspx-sidan har jag en dropdown som heter dpdList. Där kan jag välja två länder, Sverige och Norge. Beroende på vad jag väljer så ska programmet göra lite olika saker men det är iofs inte intressant just nu. Här har jag alltså, för övnings skull, tänkt att använda mig av enum:

<code>
enum Country {
Sverige,
Norge,
}
</code>


När jag klickar på en submitknapp (btnSend) så ska alltså valt värde i dropdownmenyn tas emot och då kollas:

<code>
private void Button1_Click(object sender, System.EventArgs e) {
Country myCountry = dpdList.SelectedIndex; // osv...
</code>

Och hur jag än försöker (ovan med Onkelborgs förslag) så får jag felmeddelandet:
<code>
Cannot implicitly convert type 'int' to 'WebApplication1.test1.Country'
</code>

... och jag kan inte förstå hur jag ska lösa detta.

Vore supertacksam om det är nån som kan "tända lampan" för mig.

mvh,
Fredric


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:13:06 - Thomas Vanhaniemi

Testa använda mitt förslag tillsammans med Onkelborgs förslag.
Felet ligger nog i att din enum lista inte har några unika numeriska värden och de behövs för att kunna identifiera vilken SelectedIndex som hör till vilket land.

Mitt förlag =)
<code>
protected System.Web.UI.WebControls.Label lblInsertName;
protected System.Web.UI.WebControls.TextBox txtPersNumber;
protected System.Web.UI.WebControls.Label lblInsertPersNumber;
protected System.Web.UI.WebControls.Button btnSend;
protected System.Web.UI.WebControls.Label lblResultName;
protected System.Web.UI.WebControls.Label lblResultPersNumber;
protected System.Web.UI.WebControls.DropDownList dpdList;
protected System.Web.UI.WebControls.TextBox txtName;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnSend.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

enum Country {
Sverige = 0,
Norge = 1,
}

private void Button1_Click(object sender, System.EventArgs e) {
Country myCountry = dpdList.SelectedIndex
}
</code>

Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:17:26 - Fredric Sannebro

Tjenare Thomas!
Nej, jag försökte med ditt nu igen, i kombination med Onkelborgs, men icke sa nicke. FET-TORSK! ;-)

Kanske är ett tecken från ovan att jag borde städa toaletten eller något liknande. (?)


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:24:56 - Thomas Vanhaniemi

Blir felet detsamma?

I VB.NET skulle jag skrivit följande.
<code>
Public Enum Country
Sverige = 0
Norge = 1
End Enum

Private Sub Knapp_OnClick ()
Dim Land As Country = 0 'Ger Sverige
Land = 1 'Ger Norge
End Sub
</code>
Jag uppfattar det som att din kod nu ska fungera, men jag är ju som sagt själv lite osäker när det gäller C#.

Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:27:08 - Thomas Vanhaniemi

Ingen aning men testa med
<code>
enum Country {
Sverige = 0;
Norge = 1;
}
</code>


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:32:33 - Fredric Sannebro

Nej, inget av ovanstående funkar och kompileringsfelet är fortfarande detsamma...??


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:42:32 - Thomas Vanhaniemi

Hmm, testa lägga in ditt SelectedIndex i en integer först.
<code>
private void Button1_Click(object sender, System.EventArgs e) {
int SelInt = dpdList.SelectedIndex
Country myCountry = SelInt
}
</code>
Tror det ska se ut så.

Med hjälp av detta ser vi ju om SelectedIndex har ens en integer.

Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 15:46:48 - Thomas Vanhaniemi

Var in på Microsofts sidor och kikade lite...
Enligt dem skriver man
<code>enum Country {Sverige, Norge};</code>Sverige har då index 0 och Norge index 1.

Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 16:04:26 - Oskar Johansson

countryvariabeln = (Country)blablabla.SelectedIndex


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 16:36:13 - Fredric Sannebro

Thomas: att skriva <code>enum Country {Sverige, Norge};</code> är samma som att skriva <code>enum Country {
Sverige,
Norge};</code>
bara att jag radbröt min kod vilket ska funka fint i C# (?). Sen hade du lagt till ett semikolon efter sista måsvingen men det undrar jag om det verkligen är rätt. Hur som helst så kvarstår felet om jag testar...

Onkelborg: vad menar du ska stå istället för "bla bla bla"?


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 17:32:40 - Oskar Johansson

listboxen (eller vad det nu var du hade...)


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 17:41:32 - Thomas Vanhaniemi

Jodå, jag vet att det går att radbryta.
Tog det direkt från Microsofts sidor och där hade de semikolon efter sista måsvingen.

Har inga fler uppslag varför det inte fungerar för dig just nu.
I VB.NET skulle jag fått det att fungera direkt.

Mvh,
Thomas Vanhaniemi


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 21:05:41 - Fredric Sannebro

Tusen tack ska ni ha! Jag är jätteglad för all hjälp även om jag inte kom fram till något. Jag kom just hem från "The last samurai" så jag är rätt glad trots allt. ;-)

Hoppas det kommer fler förslag från någon (?).

Mvh,
Fredric


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 21:37:36 - Oskar Johansson

Prövade du det dära med att skriva (Country) framför SelectedIndex saken?


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 21:50:03 - Fredric Sannebro

jo, men jag fick det inte att funka tyvärr... :( jag kanske får tänka om. Man kanske inte använder enum som jag tror ?


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-25 21:52:59 - Oskar Johansson

Är det fortfarande can't convert blablabla felmesset?


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-26 03:35:22 - Daniel Harju

Nu är ju jag helt växlad på asp men kan man inte använda "SelectedItem" istället för index?
Kan man verkligen omvandla ett int-värde till en enum? Är det inte så att man kan omvandla en enum till ett int-värde men inte tvärtom?


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-26 08:25:53 - Johan Bovin

Hej
Jag vet inte hur du fyller din combobox, men jag gissar att du fyller den med namnen i den enum. Genom t.ex.:
<code>
dpdList.Items.AddRange(Enum.GetNames(typeof(Country)));
</code>
Du borde i så fall kunna använda följande för att se vilken du valt:

<code>

private void Button1_Click(object sender, System.EventArgs e)
{
Country myCountry=(Country)Enum.Parse(typeof(Country),dpdList.SelectedIndex.ToString());
}
</code>


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-26 09:00:49 - Markus Larsson

För att omvandla en integer till en enum kan du göra så här:
<code>Country c = Country.ToObject(Country, dpdList.SelectedIndex);</code>

Med hjälp av ToObject som är en Static funktion i Enum-klassen kan man omvandla heltal till enum's.

För att definera en Enum kan du skriva:
<code>enum Country
{
Sverige,
Norge
};</code>

Man kan även ge länderna värden också:
<code>enum Country
{
Sverige = 10,
Norge = 20
};</code>
Men standard är att de får värden från 0 och uppåt.


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-26 11:45:25 - Johan Normén

Om du vill göra det mer flexiblet, ex låta din Country Selectbox ha landskoder som value och inte index så kan du använda dig av EnumConverter klassen för att bygga en smart konverterare.

Tänk på om du kör med Index i ex databas. Autoincrement sådant så är det väldigt noga att DU inte gör ändringar i din db. ex tar bort fält m.m.
Säg att Sverige har id 1, men så raderar du den raden och lägger till Sverige igen, då får du Sverige på ID 2, om du då har detta som value i din selectbox kommer din enum att ge fel svar. Du måste alltså _alltid_ som utvecklare av din kod eller för andra ge strikta regler hur detta skall hanteras, det är något som inte kommer hålla i längden. Ändras ID i dbn måste enum int value ändras till samma. Du måste alltså alltid vara säker på att enum index är samma som index i din listbox.

I ett system vi byggde för ett tagsedan så ökade länderna i vår databas, då vi ville veta vilket land man kom från vid en registrering.
Men vi hade bara språkstöd för två, Sverige och England.
Vi valde då att alla länder utom sverige fick england som default. I detta fall måste du som listar ut Selectboxen sätta samma ID på de länder som inte är Sverige. För att få din kod att fungera. Eller köra med Landsnummer och convertera dessa till rätt enum.

Vet ej hur din implementation ser ut eller hur du tänkt lösa framtida problem, men tänkte bara ge dig lite tips här på vägen. Kanske inget du har nytta av just nu, men i framtiden.

Mvh Johan


Svara

Sv: Enum i ASP.NET?

Postades av 2004-01-26 18:30:00 - Fredric Sannebro

Tack alla för era svar! Uppskattas verkligen!!!!!!
Ska kika lite på det ni skrivit så ska jag se om jag kan lösa det.

:-)

Mvh,
Fredric


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
5 877
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies