Avatar billede Driton Seniormester
26. januar 2012 - 18:20 Der er 6 kommentarer og
1 løsning

Panel inde i en repeater

Jeg har gør brug af en panel inde i en repeater, som jeg fanger med denne stykke kode og alt virker, koden bliver kørt og det hele. men jeg får aldrig knappen frem på siden, og den viser ingen fejl. koden ser sådan ud

LinkButton LBudbudte = new LinkButton();
            LBudbudte.ID = reader["KursusKategoriId"].ToString();
            LBudbudte.Text = "Tilmeldning åben";

            foreach (RepeaterItem ri in Repeater_udbudteKurser.Items)
            {
                Panel Panel_Button = ((Panel)ri.FindControl("Panel_Button"));
                Panel_Button.Controls.Add(LBudbudte);
               
            }
Avatar billede janus_007 Nybegynder
26. januar 2012 - 21:32 #1
Hvilken event eksekverer du koden i?
Avatar billede Driton Seniormester
26. januar 2012 - 22:22 #2
Den ligger i min pageload,

og hele koden ser sådan ud
cmd.Parameters.Add("@udbudtekurser", SqlDbType.Bit).Value = true;

        Conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        string tempId = string.Empty;
        while (reader.Read())
        {
            if (reader["KursusKategoriId"].ToString() != tempId)
            {
                tempId = reader["KursusKategoriId"].ToString();
                udbudteKurser.Add(new Udbudtekurser(
                    (int)reader["KursusKategoriId"],
                    (int)reader["Varighed"],
                    (string)reader["Semester"],
                    (DateTime)reader["Begynder"],
                    (int)reader["KursusKatelogId"],
                    (string)reader["Niveau"],
                    (string)reader["Titel"],
                    (string)reader["Billede_Lille"],
                    (string)reader["Kode"],
                    (string)reader["KortBeskrivelse"],
                    (string)reader["Fornavn"],
                    (string)reader["Efternavn"],
                    (bool)reader["Tilmeldning"],
                    (int)reader["Pladser"]));

            }



            LinkButton LBudbudte = new LinkButton();
            LBudbudte.ID = reader["KursusKategoriId"].ToString();
            LBudbudte.Text = "Tilmeldning åben";

            foreach (RepeaterItem ri in Repeater_udbudteKurser.Items)
            {
                Panel Panel_Button = ((Panel)ri.FindControl("Panel_Button"));
                Panel_Button.Controls.Add(LBudbudte);
               
            }


        }
        Conn.Close();
        Repeater_udbudteKurser.DataSource = udbudteKurser;
        Repeater_udbudteKurser.DataBind();
Avatar billede janus_007 Nybegynder
26. januar 2012 - 23:30 #3
Så er det derfor :)

Du skal lægge den i ItemDataBound, http://msdn.microsoft.com/en-us/library/x8wf119e.aspx
Avatar billede Driton Seniormester
27. januar 2012 - 00:17 #4
Kan du ikke vise det, så skal jeg nok accepter din svar.
Avatar billede Driton Seniormester
27. januar 2012 - 01:26 #5
hvis jeg gøre sådan her så, hvad mangler jeg så at indfører før den virker?

protected void rep_OnDataBound(Object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Panel Panel_Button = ((Panel)e.Item.FindControl("Panel_Button"));
        }
    }

private void Hentudbudtekurser()
    {
    .......
cmd.Parameters.Add("@udbudtekurser", SqlDbType.Bit).Value = true;

        Conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        string tempId = string.Empty;
        while (reader.Read())
        {
            if (reader["KursusKategoriId"].ToString() != tempId)
            {
                tempId = reader["KursusKategoriId"].ToString();
                udbudteKurser.Add(new Udbudtekurser(
                    (int)reader["KursusKategoriId"],
                    (int)reader["Varighed"],
                    (string)reader["Semester"],
                    (DateTime)reader["Begynder"],
                    (int)reader["KursusKatelogId"],
                    (string)reader["Niveau"],
                    (string)reader["Titel"],
                    (string)reader["Billede_Lille"],
                    (string)reader["Kode"],
                    (string)reader["KortBeskrivelse"],
                    (string)reader["Fornavn"],
                    (string)reader["Efternavn"],
                    (bool)reader["Tilmeldning"],
                    (int)reader["Pladser"]));

            }



            LinkButton LBudbudte = new LinkButton();
            LBudbudte.ID = reader["KursusKategoriId"].ToString();
            LBudbudte.Text = "Tilmeldning åben";




        }
        Conn.Close();
        Repeater_udbudteKurser.DataSource = udbudteKurser;
        Repeater_udbudteKurser.DataBind();
}

Tak på forhånd
Avatar billede Driton Seniormester
27. januar 2012 - 16:12 #6
Nu har jeg prøvet at gøre sådan her

cmd.Parameters.Add("@udbudtekurser", SqlDbType.Bit).Value = true;

        Conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        string tempId = string.Empty;
        while (reader.Read())
        {
            if (reader["KursusKategoriId"].ToString() != tempId)
            {
                tempId = reader["KursusKategoriId"].ToString();
                udbudteKurser.Add(new Udbudtekurser(
                    (int)reader["KursusKategoriId"],
                    (int)reader["Varighed"],
                    (string)reader["Semester"],
                    (DateTime)reader["Begynder"],
                    (int)reader["KursusKatelogId"],
                    (string)reader["Niveau"],
                    (string)reader["Titel"],
                    (string)reader["Billede_Lille"],
                    (string)reader["Kode"],
                    (string)reader["KortBeskrivelse"],
                    (string)reader["Fornavn"],
                    (string)reader["Efternavn"],
                    (bool)reader["Tilmeldning"],
                    (int)reader["Pladser"]));

            }



           

       

        }
        Conn.Close();
        Repeater_udbudteKurser.DataSource = udbudteKurser;
        Repeater_udbudteKurser.DataBind();

       
    }
    protected void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            LinkButton LBudbudte = new LinkButton();
            LBudbudte.ID = "1";
            LBudbudte.Text = "Tilmeldning åben";

            Panel panel = (Panel)Repeater_udbudteKurser.FindControl("Panel_Button");
            panel.Controls.Add(LBudbudte);
        }
    }

min aspx ser sådan ud

<asp:Repeater ID="Repeater_udbudteKurser"  OnItemDataBound="R1_ItemDataBound" runat="server">
              <ItemTemplate>
              <a href='kursuskatalog.aspx?kursusid=<%#Eval("KursusKatelogId") %>' "><h1 style="color:#164825; font-family:Arabic Typesetting; font-size:26px;"><%#Eval("Kode") %>&nbsp;:&nbsp;<%#Eval("Titel") %></h1></a><div style=" margin-top:-10px;">
                <p style=" border-bottom:solid 1px black; width:73px; font-size:12px;">Undervises af:</p>
                <p style=" font-size:12px; margin-left:75px; margin-top:-28px;">Ustadh&nbsp;<%#Eval("Fornavn") %>&nbsp;<%#Eval("Efternavn") %></p>
                <p style=" font-size:12px;"><img src="images/Sunni.png" height="134" width="156" style=" float:right; padding-left:25px; padding-bottom:1px; margin-top:-20px" alt="#" /><b>Niveau:</b>&nbsp;<%#Eval("Niveau")%><br /><b>Varighed:</b>&nbsp;<%#Eval("Varighed") %>&nbsp; Uger<br />
                <b>Semester:</b>&nbsp;<%#Eval("Semester") %><br /><b>Begyndelsesdato:</b>&nbsp;<%#Eval("Begynder", "{0:d.MMMM yyyy}")%><br /><b>Beskrivelse:&nbsp;</b><%#Eval("KortBeskrivelse")%><br /><a href='kursuskatalog.aspx?kursusid=<%#Eval("KursusKatelogId") %>' style=" border-bottom: 1px solid blue; font-size:12px;">Detaljer</a>
                    </p>
                  <asp:Panel ID="Panel_Button" runat="server">
                  </asp:Panel>

Men det virker stadige ikke. nu får jeg "Object reference not set to an instance of an object."
Avatar billede Driton Seniormester
27. januar 2012 - 16:29 #7
Ham der kan hjælpe mig med den her, opretter jeg en ny tråd til ham, hvor jeg tildeler ham 1000 point plus dem her.
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