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


Hur hämtar jag data till en dropdownlist från en flerdimensionell array?

Postades av 2008-04-23 19:35:17 - Jonas Sjöblom, i forum asp.net generellt, Tråden har 2 Kommentarer och lästs av 904 personer

string[,] Languages;
Languages[0, 0] = "swe";
Languages[1, 0] = "Swedish";
Languages[0, 1] = "eng";
Languages[1, 1] = "English";
Languages[0, 2] = "fre";
Languages[1, 2] = "French";

Hur använder jag den här arrayen för att lägga in data i en dropdownlist?
Jag vill använda Languages[0,i] som DataValueField och [1,i] som DataTextField


Svara

Sv: Hur hämtar jag data till en dropdownlist från en flerdimensionell array?

Postades av 2008-04-23 23:47:36 - Ruben Jönsson

Du kan inte göra det direkt med en vanlig string array. Du måste göra en klass med två publika get properties, en för display värdet och en för data värdet. Typ så här:

public class Lang
{
    protected string _DataValue;
    protected string _DataText;
    public string DataValue
    {
        get
        {
            return _DataValue;
        }
    }
    public string DataText
    {
        get
        {
            return _DataText;
        }
    }

    public Lang (string value, string text)
    {
        _DataValue = value;
        _DataText = text;
    }
}


Du behöver sedan en collection med denna klass. Jag har baserat en klass på en List<Lang> för att kunna göra en egen constructor:

 public class LangCollection:List<Lang>{
    public LangCollection (string[,] strInit)
    {
        for(int i=0;i<=strInit.GetUpperBound(0);i++){
            Lang l = new Lang(strInit[i,0],strInit[i,1]);
            Add(l);
        }
    }
}


Du behöver sedan ett sätt att enkelt initiera din Lang och LangCollection klass:

public static string[,] langStr =new string[,]{
    {"eng","English"},
    {"swe","Swedish"},
    {"fra","French"}
};
LangCollection langCollection = new LangCollection(langStr);


Initieringen lägger du direkt i den form klassen där du har din combobox utanför alla funktioner. langStr måste vara statisk för att langCollection ska gå att initiera på det här sättet.

Sedan kommer magin med databinding och data source i VS2005:
Välj din combobox i form designern och klicka på den lilla pilen uppe till höger på combo boxen. Checka "Use data bound items". Droppa listan för data source och välj "Add project data source". Ett nytt fönster öppnas och där klickar du på Object ikonen och klickar på next. Sedan väljer du Assemblyt och namespacet där din Lang klass finns och klickar på Lang. Sedan klickar du på next och finish. Du har nu talat om vilken typ av objekt som ska finnas i combo boxen (Lang i det här fallet).

Sedan droppar du Display member listan och väljer DataText fältet.

Sedan droppar du Value member listan och väljer DataValue fältet.

Du har nu talat om vilka fält i Lang som combo boxen ska visa resp. returnera.

Sedan droppar du Selected value listan och väljer LangDataSource och fältet DataValue. Du har nu talat om vilket Selected fält comboboxen ska returnera.

Nu har du konfigurerat databinding för comboboxen. Nu behöver du bara tala om vilken comboboxens data source ska vara. I ditt fall så är ju det langCollection. Detta kan du göra efter InitializeComponents i constructorn för formen där comboboxen finns.

cbTest.DataSource = langCollection;


Där cbTest är member variabeln för comboboxen.

När du nu kör ditt program så kommer comboboxen att visa "English", "Swedish" och "French" och
returnera "eng","swe" eller "fra" som Selected property värde.

private void cbTest_SelectedIndexChanged (object sender, EventArgs e)
{
    string str = (string)cbTest.SelectedValue;
}


I exemplet för SelectedIndexChanged ovan så blir alltså str="eng","swe" eller "fra" beroende på vilket som är valt.

Det verkar kanske lite omständigt men det är ganska enkelt (när man vet hur). Man kan också göra databinding direkt i koden men det går jag inte in på här.

Lycka till

/Ruben


Svara

Sv:Hur hämtar jag data till en dropdownlist från en flerdimensionell array?

Postades av 2008-04-24 11:34:47 - Jonas Sjöblom

Tackar, det fungerar utmärkt!
Var mera komplicerat än jag trodde, men som sagt inte så svårt när man förstår det.


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 166
27 952
271 704
931
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