Click here to Skip to main content
15,923,083 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi
I want to check if the checkbox is checked and then run some code, and if the checkbox not is check it could do something else.

If I delete the else statement and this one CheckBox check = FindControl("CheckBox_standard") as CheckBox;
if (check.Checked)

It will work fine.

But when the code is written as the exsample below it comes with this error

Object reference not set to an instance of an object.

So the value is not written when I do this, but what am I doing wrong??



C#
protected void Button_putikurv_Click(object sender, EventArgs e)
    {
        CheckBox check = FindControl("CheckBox_standard") as CheckBox;
        if (check.Checked)
        {
            
        
        List<ValgtStandard> Standard = new List<ValgtStandard>();
       
            foreach (RepeaterItem item in Repeater1.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    CheckBox check1 = item.FindControl("CheckBox_standard") as CheckBox;
                    
                    
                        if (check == null) continue;


                        string stanNavn = check.Attributes["Navn"]; //Det her skal vel være en streng!?
                        int stanID = Convert.ToInt32(check.Attributes["ID"]);

                                               
                            ValgtStandard GroentnDerskalTilfoejes = new ValgtStandard(); //Opret frugten og angiv værdier
                            GroentnDerskalTilfoejes.ID = stanID;
                            GroentnDerskalTilfoejes.Navn = stanNavn;
                            Standard.Add(GroentnDerskalTilfoejes);
                        
                            Session["standard"] = Standard;
                
                            Response.Redirect("bekraeft.aspx");
                    }
                    
                }

            }
            
       
        else
        {

            int totalvaerdiGroent = 0;
            List<ValgtGroent> valgteGroent = new List<ValgtGroent>();
            foreach (RepeaterItem item in VisGroent.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    TextBox Textbox_groent = item.FindControl("TextBox_groent") as TextBox;
                    if (Textbox_groent == null) continue;

                    
                    string GroentNavn = Textbox_groent.Attributes["Navn"]; //Det her skal vel være en streng!?
                    int groentID = Convert.ToInt32(Textbox_groent.Attributes["ID"]);
                    int enkeltGroentVaerdi = int.Parse(Textbox_groent.Attributes["Vaerdi"]);

                    if (Textbox_groent != null)
                    {
                        if (string.IsNullOrEmpty(Textbox_groent.Text))
                        {

                            Textbox_groent.Text = "0";
                        }
                       
                    }
                    


                    
                    int enkeltGroentAntal = int.Parse(Textbox_groent.Text);

                    
                    totalvaerdiGroent += (enkeltGroentVaerdi * enkeltGroentAntal);

                   
                    if (enkeltGroentAntal > 0)
                    {
                        ValgtGroent GroentnDerskalTilfoejes = new ValgtGroent(); //Opret frugten og angiv værdier
                        GroentnDerskalTilfoejes.ID = groentID;
                        GroentnDerskalTilfoejes.Navn = GroentNavn;
                        GroentnDerskalTilfoejes.Vaerdi = enkeltGroentVaerdi;
                        GroentnDerskalTilfoejes.Antal = enkeltGroentAntal;
                        valgteGroent.Add(GroentnDerskalTilfoejes);
                    }



                }

            }   
                
        int totalvaerdi = 0;
                 
            
            List<ValgtFrugt> valgteFrugter = new List<ValgtFrugt>(); //Her laver jeg en liste over valgte frugter. Det er et nyt objekt, som kan indeholde påde ID, Navn, Antal og Værdi
        
        foreach (RepeaterItem item in VisProdukt.Items)
        {
            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                TextBox Textbox_antal = item.FindControl("TextBox_frugt") as TextBox;
                
                if (Textbox_antal == null) continue; //Tekstboksen blev ikke fundet, så ingen grund til at lave mere her.
               
                string frugtNavn = Textbox_antal.Attributes["Navn"]; //Det her skal vel være en streng!?
                
                int enkeltFrugtVaerdi = int.Parse(Textbox_antal.Attributes["Vaerdi"]);
                int frugtID = Convert.ToInt32(Textbox_antal.Attributes["ID"]);


              

                if (Textbox_antal.Text != null)
                {
                  
                    if (string.IsNullOrEmpty(Textbox_antal.Text))
                    {
                        Textbox_antal.Text = "0";

                    }
                }
               

               
                int enkeltFrugtAntal = int.Parse(Textbox_antal.Text);
               

                totalvaerdi += (enkeltFrugtVaerdi * enkeltFrugtAntal);
                

                if (enkeltFrugtAntal > 0)
                {
                    ValgtFrugt frugtenDerskalTilfoejes = new ValgtFrugt(); //Opret frugten og angiv værdier
                    frugtenDerskalTilfoejes.ID = frugtID;
                    frugtenDerskalTilfoejes.Navn = frugtNavn;
                    frugtenDerskalTilfoejes.Vaerdi = enkeltFrugtVaerdi;
                    frugtenDerskalTilfoejes.Antal = enkeltFrugtAntal;
                    valgteFrugter.Add(frugtenDerskalTilfoejes);
                    
                }
                              
                
               
            }

        }

        if (totalvaerdi == 14 && totalvaerdiGroent == 7) //Det her skal vel være "Mindre end" eller lig 7, for ellers kan du bestille over 7 frugter
        {
            Session["ValgteFrugter"] = valgteFrugter;
            Session["ValgteGroent"] = valgteGroent;//Her lægger jeg dem bare i en session-variabel, så kan jeg lægge dem ind i databasen når det er bekræftet.
            Response.Redirect("bekraeft.aspx");

        }
        

        else
        {

            Label_vis.Text = "Du kan bestille 14 stk frugt og 7 stk grønt";
        }
    }
    }


/Tina
Posted
Comments
phil.o 22-Oct-13 15:08pm    
Which line is throwing the NullReferenceException?

Please, remove Solution 1, which is not an answer.
tina_overgaard 23-Oct-13 4:06am    
I solved the problem with the solution 1
JoCodes 23-Oct-13 1:46am    
Please specify where are you getting a null reference exception. Also , What I can see is multiple repeated controls used and in which you have the problem ??? Why using the First FindControl before you start iterating through your repeater Control?
tina_overgaard 23-Oct-13 4:07am    
I solved the problem

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900