c # - Tæl antallet af dynamisk genererede sider

Indlæg af Hanne Mølgaard Plasc

Problem



Dette er nok en nem løsning, men jeg kan ikke få hovedet rundt om det.


Jeg har sider, der dynamisk genereres, og jeg tæller de sider, der skal genereres via en LINQ-sætning (fx): (DET ER UPDATERET KODE for at vise, hvor spørgsmålCount er kaldt og sat til \_labelQuestionCount - dette er et uddrag fra en større metode, der dynamisk genererede alle sider og indstille alle kontroller i dynamiske sider)


using (DataClasses1DataContext db = new DataClasses1DataContext())
{
    int questionsCount = (from q in db.vw\_Custom\_SelectQuestionnaireQuestions        
    select q.tbl\_QuestionnaireQuestion\_Description).Count();
    \_labelQuestionCount = questionsCount.ToString();
}

    Label labelCount = new Label();
    labelCount.ForeColor = Color.Blue;
    labelCount.Location = new System.Drawing.Point(35, 290);
    labelCount.Size = new System.Drawing.Size(150, 30);
    labelCount.Tag = \_dataSetRadioButtons.Tables["tbl\_QuestionnaireAnswer\_Score"];
    labelCount.Text = String.Format("Question Count: {0}", \_labelQuestionCount);


Her er den globale var:


   string \_labelQuestionCount;


Årsagen til dette er, som jeg klikker på de dynamisk oprettede sider, vil jeg gerne 'tælle' dem, så i min 'næste knap' -hændelse vil jeg vide x-siden er min sidste side, og jeg kan navigere/gøre noget andet kode.


Nuværende kode for næste knap er: (Opdateret)


        void nextButton\_Click(object sender, EventArgs e)
    {  
        bool c = IsChecked(\_form);

        if (c == true)
        {
            var w = Convert.ToInt32(\_labelQuestionCount);
            \_form.Dispose();
            w--;

            if (w == 0)
            {
                //go to another page or do something else
            }
        }
        else
        {
            MessageBox.Show("You must select at least one.");
        }
    }


Som du kan se, prøver jeg værdien fra en global variabel (f.eks. \_\_labelQuestionCount) og prøv at tælle den 'nede' indtil du kommer til 0 og gøre noget andet.


Men fordi mine sider genereres dynamisk, kommer jeg aldrig til 0.


Dette er sandsynligvis den forkerte måde at gå om dette, så hvis nogen kunne foreslå eller hjælpe det ville det være meget værdsat.


Med venlig hilsen,
geoNeo

Bedste reference


du skal omfordele den reducerede værdi (w--) til den globale variabel \_labelQuestionCount inde i næste knap-klikhændelse. fordi hvis du klikker på næste, vil \_labelQuestionCount forblive ens for alle klik.

Andre referencer 1


Jeg ville tænke over at tildele en Page nogle int PageID, hvis der ikke er nogen allerede.
Og når du gendanner samlingen af ​​sider fra basen, tæller du ikke antallet af dem, men får PageID af den seneste side til rådighed nu .


button\_click spørger du igen om det sidste element i colleciton i øjeblikket af klik (fordi det måske er blevet ændret, nye sider blev tilføjet til kolleciton), revoer its PageID]], og kontroller, om den side du svømmer til har samme ID, hvis ja, gør hvad du skal gøre.