Avatar billede simsen Mester
07. november 2007 - 10:38 Der er 5 kommentarer og
1 løsning

BasePage klasse med variabler

Hej,

Jeg forsøger at lægge noget kode ud i en BasePage klasse. I den kode er der en variabel, som så skal sættes på de sider, hvor jeg arver fra BasePage klassen.

Jeg har forsøgt mig med følgende:

public class ERSBasePage : System.Web.UI.Page
{
    public ERSBasePage() 
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public static GridView data
    {
        get
        {
            return data;
        }
        set
        {
            data = value;
        }
    }
   

    public String sortExpression
    {
        get
        {
            if (ViewState["sortExpression"] == null)
            {
                ViewState["sortExpression"] = Convert.ToString(data.Columns[0].SortExpression);
            }
            return Convert.ToString(ViewState["sortExpression"]);
        }
        set
        {
            ViewState["sortExpression"] = value;
        }
    }
}

og så i en aspx.cs fil at lave følgende i pageload delen:

public partial class ERS_Adm_AdmFrontPage : ERSBasePage
{
protected void Page_Load(object sender, EventArgs e)
    {
        data = grdEmployeeList;
    }
}

Når jeg gør dette, får jeg en System.StackOverflowException fejl.

Det jeg har brug for er i "public String sortExpression" at kunne sætte variablen data (som er en gridview) Når jeg skal tilgå den på de forskellige sider, kalder jeg jo det gridview forskelligt, alt efter hvilken side.

Hvad er det jeg mangler at gøre/gør forkert?

Mvh
simsen
Avatar billede simsen Mester
07. november 2007 - 11:19 #1
Hov - glemte at skrive - at jeg har debugget - og den fejler ved:

set
        {
            data = value;
        }
Avatar billede compilos Nybegynder
07. november 2007 - 11:43 #2
Er det ikke fordi du skal bruge en private variabel
private GridView _data;

også
public static GridView data
    {
        get
        {
            return _data;
        }
        set
        {
            _data = value;
        }
    }
Avatar billede simsen Mester
07. november 2007 - 12:17 #3
Hej compilos,

Gør jeg som du skriver, får jeg følgende fejl, når jeg forsøger at køre side:

An object reference is required for the nonstatic field, method, or property 'ERSBasePage._data'   

og det både for _data i get og set metoden
Avatar billede compilos Nybegynder
07. november 2007 - 12:33 #4
Ude i din page load, laver du så en instans af klassen
data MyGrid = new data();

også,
MyGrid = grdEmployeeList;

ps:Kender ikke lige så meget til det!
Avatar billede simsen Mester
07. november 2007 - 16:35 #5
Jeg skal ikke lave en ny instans af klassen, da siden arver fra klassen. Men jeg laver en:

data = grdEmployeeList;
Avatar billede simsen Mester
07. november 2007 - 18:17 #6
Lukker og opgiver. Har brugt 3 dage nu på det.....så må jeg kopiere over på de andre sider istedet...... :-(
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