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); }
Annonceindlæg fra IBM
26. januar 2012 - 21:32
#1
Hvilken event eksekverer du koden i?
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();
27. januar 2012 - 00:17
#4
Kan du ikke vise det, så skal jeg nok accepter din svar.
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
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") %> : <%#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 <%#Eval("Fornavn") %> <%#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> <%#Eval("Niveau")%><br /><b>Varighed:</b> <%#Eval("Varighed") %> Uger<br /> <b>Semester:</b> <%#Eval("Semester") %><br /><b>Begyndelsesdato:</b> <%#Eval("Begynder", "{0:d.MMMM yyyy}")%><br /><b>Beskrivelse: </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."
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.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.