Avatar billede scarface335 Nybegynder
07. september 2006 - 10:51 Der er 21 kommentarer og
1 løsning

Collection til gridview

Jeg vil gerne lave en liste, der inhodeler fire elementer der skal så læses ind i et gridview der har 4 felter der hedder Fornavn, efternavn, adresse, by. Der skal så i listen ligge fire elementer: Jes, Gudiksen, strandvej, Aalborg.
Avatar billede dr_chaos Nybegynder
07. september 2006 - 11:01 #1
lav en class :

public class  person

{
private string fornavn

public person()
{
}

public string Fornavn{
get{return fornavn;}
set{fornavn=value;}
}



}
Avatar billede dr_chaos Nybegynder
07. september 2006 - 11:02 #2
Nå du skal oprette en list gør du det med

List<person> p = new List<person>();

person ps = new person();
ps.fornavn="hans";

p.add(ps);
Avatar billede dr_chaos Nybegynder
07. september 2006 - 11:04 #3
for at få hans ud i et gridview

bruger du

gridview.datasource=p;
gridview.databind();

Min kode er noget simplificeret men giver den grundlæggende ide
Avatar billede scarface335 Nybegynder
07. september 2006 - 11:31 #4
Hvilken type list skal jeg bruge
Avatar billede dr_chaos Nybegynder
07. september 2006 - 11:49 #5
System.Collections.List i c# 2.0
Avatar billede dr_chaos Nybegynder
07. september 2006 - 11:50 #6
Det er en generisk liste hvis du tilføjer
using System.Collections; i toppen af din class hvor du skal bruge listen
kan du oprette en instans med:
List<person> p = new List<person>();
Avatar billede scarface335 Nybegynder
07. september 2006 - 11:56 #7
Det er en asp.net application jeg laver men jeg skriver alt koden i c# i aspx.cs klassen, men jeg kan ikke finde system.collections.list, er det fordi det er asp.net, troede egentligt at det var den samme funktionalitet som i en almindelig c# application
Avatar billede dr_chaos Nybegynder
07. september 2006 - 12:02 #8
Min fejl den ligger i:

System.Collections.Generic.List
Avatar billede scarface335 Nybegynder
07. september 2006 - 12:49 #9
Jeg har skrevet denne kode:

ordre ordre = new ordre("0", "0", "Intern ordre", "Uproduktiv tid");
            List<ordre> test = new List<ordre>();
            test.Add(ordre);
            GridView1.DataSourceID = null;
            GridView1.DataSource = test;
            GridView1.DataBind();

og får fejlen: A field or property with the name 'OrdreNr' was not found on the selected data source.
Avatar billede scarface335 Nybegynder
07. september 2006 - 12:50 #10
Og min klasse ser således ud:

public class ordre
{
    public PropertyCollection test;
    public string OrdreNr;
    public string OrdreGruppe;
    public string KundeNavn;
    public string InternTekst;
    public ordre(string ordreNr, string ordreGruppe, string kundeNavn, string internTekst)
    {
        this.KundeNavn = kundeNavn;
        this.InternTekst = internTekst;
        this.OrdreGruppe = ordreGruppe;
        this.OrdreNr = ordreNr;
       
    }
}
Avatar billede dr_chaos Nybegynder
07. september 2006 - 13:19 #11
du skal lave klassen med

public string OrdreNr{
get{return this.OrdreNr;}
set{this.OrdreNr=value;}
}

og ikke bare med
public string OrdreNr;
Avatar billede scarface335 Nybegynder
07. september 2006 - 14:55 #12
Jeg Har lavet Klassen således:
public class ordre
{
    public PropertyCollection test;
 
   
   
    public ordre()
    {
     
       
    }
    public string OrdreNr
    {
        get { return this.OrdreNr; }
        set { this.OrdreNr = value; }
    }
    public string OrdreGruppe
    {
        get{ return this.OrdreGruppe;}
        set{ this.OrdreGruppe = value; }
    }
    public string KundeNavn
    {
        get { return this.KundeNavn; }
        set { this.KundeNavn = value; }
    }
    public string InternTekst
    {
        get { return this.InternTekst; }
        set { this.InternTekst = value; }
    }

}
Og den bliver kaldt herfra:
ordre ordre = new ordre();
            ordre.KundeNavn = "InternOrdre";
            ordre.InternTekst = "Uproduktivtid";
            ordre.OrdreGruppe = "0";
            ordre.OrdreNr = "0";
            List<ordre> test = new List<ordre>();
            test.Add(ordre);
            GridView1.DataSourceID = null;
            GridView1.DataSource = test;
            GridView1.DataBind();

og jeg får fejlen:

System.StackOverflowException was unhandled
An unhandled exception of type 'System.StackOverflowException' occurred in App_Code.wucavkdx.dll
make sure you dont have infinitive loop
Avatar billede scarface335 Nybegynder
07. september 2006 - 15:10 #13
Grunden til at jeg sætter datasouceId til null er at gridviewet nogle gange får data fra en sqldatasource, men ikke i dette tilfælde
Avatar billede dr_chaos Nybegynder
07. september 2006 - 15:14 #14
du behøver ikke at sætte GridView1.DataSourceID = null;

paste lige koden til hele den side som kalder:
ordre ordre = new ordre();
            ordre.KundeNavn = "InternOrdre";
            ordre.InternTekst = "Uproduktivtid";
            ordre.OrdreGruppe = "0";
            ordre.OrdreNr = "0";
            List<ordre> test = new List<ordre>();
            test.Add(ordre);
            GridView1.DataSourceID = null;
            GridView1.DataSource = test;
            GridView1.DataBind();
Avatar billede scarface335 Nybegynder
07. september 2006 - 15:19 #15
protected void Button2_Click(object sender, EventArgs e)
    {

        if (TextBox2.Text.Equals("0"))
        {

            ordre ordre = new ordre();
            ordre.KundeNavn = "InternOrdre";
            ordre.InternTekst = "Uproduktivtid";
            ordre.OrdreGruppe = "0";
            ordre.OrdreNr = "0";
            List<ordre> test = new List<ordre>();
            test.Add(ordre);
            GridView1.DataSourceID = null;
            GridView1.DataSource = test;
            GridView1.DataBind();


        }
        else
        {
            GridView1.DataSourceID = SqlDataSource1;
            GridView1.DataBind();
        }
       
      // GridView1.DataBind();
        if (this.GridView1.Rows.Count > 0)
        {
            Label6.Visible = true;
            Label7.Visible = true;
            Label8.Visible = true;
            Label9.Visible = true;
            Label10.Visible = true;
            Label11.Visible = true;
            Label12.Visible = true;
            Label13.Visible = true;
            DropDownList1.Visible = true;
            DropDownList2.Visible = true;
            Calendar1.Visible = true;
            Button3.Visible = true;
            TextBox3.Visible = true;
            TextBox5.Visible = true;
            TextBox4.Visible = true;
            TextBox6.Visible = true;
            TextBox7.Visible = true;
        }


        else
        {
            Label6.Visible = false;
            Label7.Visible = false;
            Label8.Visible = false;
            Label9.Visible = false;
            Label10.Visible = false;
            Label11.Visible = false;
            Label12.Visible = false;
            Label13.Visible = false;
            TextBox3.Visible = false;
            TextBox5.Visible = false;
            TextBox4.Visible = false;
            TextBox6.Visible = false;
            TextBox7.Visible = false;
            Button3.Visible = false;
            DropDownList1.Visible = false;
            DropDownList2.Visible = false;
            Calendar1.Visible = false;
        }

    }
Avatar billede scarface335 Nybegynder
07. september 2006 - 15:20 #16
protected void Button2_Click(object sender, EventArgs e)
    {

        if (TextBox2.Text.Equals("0"))
        {

            ordre ordre = new ordre();
            ordre.KundeNavn = "InternOrdre";
            ordre.InternTekst = "Uproduktivtid";
            ordre.OrdreGruppe = "0";
            ordre.OrdreNr = "0";
            List<ordre> test = new List<ordre>();
            test.Add(ordre);
            GridView1.DataSourceID = null;
            GridView1.DataSource = test;
            GridView1.DataBind();


        }
        else
        {
            GridView1.DataSourceID = SqlDataSource1;
            GridView1.DataSource = null;
            GridView1.DataBind();
        }
       
      // GridView1.DataBind();
        if (this.GridView1.Rows.Count > 0)
        {
            Label6.Visible = true;
            Label7.Visible = true;
            Label8.Visible = true;
            Label9.Visible = true;
            Label10.Visible = true;
            Label11.Visible = true;
            Label12.Visible = true;
            Label13.Visible = true;
            DropDownList1.Visible = true;
            DropDownList2.Visible = true;
            Calendar1.Visible = true;
            Button3.Visible = true;
            TextBox3.Visible = true;
            TextBox5.Visible = true;
            TextBox4.Visible = true;
            TextBox6.Visible = true;
            TextBox7.Visible = true;
        }


        else
        {
            Label6.Visible = false;
            Label7.Visible = false;
            Label8.Visible = false;
            Label9.Visible = false;
            Label10.Visible = false;
            Label11.Visible = false;
            Label12.Visible = false;
            Label13.Visible = false;
            TextBox3.Visible = false;
            TextBox5.Visible = false;
            TextBox4.Visible = false;
            TextBox6.Visible = false;
            TextBox7.Visible = false;
            Button3.Visible = false;
            DropDownList1.Visible = false;
            DropDownList2.Visible = false;
            Calendar1.Visible = false;
        }

    }
Avatar billede dr_chaos Nybegynder
07. september 2006 - 16:47 #17
fjern null værdien.
GridView1.DataSourceID = null;
Hvilken linie giver den fejlen i ?
Avatar billede scarface335 Nybegynder
08. september 2006 - 14:41 #18
Den giver fejlen at Gridviewet ikke bå må have en datasource og et datasourceId har prøvet at fjerne den det virker ikke
Avatar billede dr_chaos Nybegynder
08. september 2006 - 17:01 #19
Gør det at du lade være med at angive et datasourceid på aspx siden men sætter det i pageload:

altså
GridView1.DataSourceID = SqlDataSource1;
else
GridView1.DataSourceID = test;
       
            GridView1.DataBind();
       
            GridView1.DataBind();
Avatar billede scarface335 Nybegynder
15. september 2006 - 08:13 #20
Har fået det til at virke smid et svar
Avatar billede dr_chaos Nybegynder
15. september 2006 - 08:18 #21
svar :)
Avatar billede dr_chaos Nybegynder
15. september 2006 - 08:25 #22
prøver lige igen svar :)
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