Hvordan tilgår jeg en dynmaisk generert kontrol i en anden metode (samme code behind file)
Hejsa Xperts :)
jeg sidder og laver et lile nyheds modul med kommentar mulighed, og for hver nyhed er der selvfølgelig forskellige comments, alt bliver generert dynamisk ud fra en database. Men for hver nyhed der bliver generet opretter jeg en "linkbutton" med et dynamisk id, og i dens click event skulle jeg gerne kunne tilgå kontrollen/eller andre af de generet kontroller. se neden for : ---------------------------------------------- LinkButton btnComment = new LinkButton(); btnComment.ID += ni.getNewsId().ToString(); btnComment.Text = al.Count.ToString() + " Comments"; btnComment.Click += OpenComment; btnComment.Attributes.Add("pnlId",pnlComment.ID.ToString());
public void OpenComment(Object sender, EventArgs e) {
HVORDAN FANGER JEG EN KONTROL HER :D
}
---------------------------------------------- jeg har prøvet og løse det ved og sende Id'et på den control jeg skal tilgå(pnlId) men jeg ved ikke hvordan tilgår kontrollen uden og oprette en ny instance af den og det kan jeg ikke for så brokker den sig over at der er 2 med samme navn ... sry hvis det er for forvirrende, men basalt set hvordan for jeg adgang til en anden kontrol i en anden metode
jeps nu kan jeg fange den MEN den siger at: Object reference not set to an instance of an object.
min knap ser sådan her ud : ------------------------------ LinkButton lb = (LinkButton) sender; string pnlId = lb.Attributes["pnlId"]; Panel pnl = this.Page.FindControl(pnlId) as Panel; pnl.Visible = true; ------------------------------
og har lige checket den for Id'et med fint nok .. det hedder CommentPanel2
Jeg for stadig Object reference not set to an instance of an object. ------------------------------ LinkButton lb = (LinkButton) sender; string pnlId = lb.Attributes["pnlId"]; Panel pnl = this.Page.FindControl(pnlId) as Panel; pnl.Visible = true; -----------------------------
Den har som sagt fint nok navnet med på kontrollen men bare som om at panelet ikke reagere på det ...
Det er selve pnl som ik har en object reference ....
Det er mest en challenge men også lige så meget for at lære noget nyt, en kammerat og jeg er ved og lave et lille cms som vi bare selv skal bruge ..... for jeg bryder mig ikke om at benytte repeatern nok mest fordi jeg synes ikke man altid har helt styr på hvordan tingene bliver generert.
så ja jeg arbejder meget imod webform prinipperne :)
okay :) det er også meget længe siden jeg har prøvet repeateren og tror det nok har været lige så meget min uearfarenhed dengang som gjorde at jeg ik helt følte kontrollen hehe :)
Ja har jeg også prøvet her den sidste time og den står bar som et null reference så lidt sært men sikkert bar mig som ska sove en time og læse igennem igen .. har vi vist alle været deR :)
Ja, god grund til at sove ... selvom eksamen er lige for døren *ARGHH*
Jeg ville i hvert fald kigge på Repeateren og deres ItemCommand ...
Virker mere som om du skal over i MVC hvis du vil lave det på den måde der ... det giver nogen helt andre muligheder og lader til at det ville passe dig bedre hvis du vil styre tingene på den måde.
Der kan du oprette alle er <form> du vil og gøre som du vil ... leger jeg selv med for tiden ... har sine fordele og ulemper :-)
Og hvis du er ved at afslutte 4 semester burde du måske kigge mere på ASP.NET MVC, som lægger meget stærkt op af de design patterns du har lært på anden og trejde semester.
Samt at der ikke benyttes controls som i WebForms, men ren C#, og Helper methods (igen, Helper er et pattern du kan slå op i din Design Patterns bog).
Og for sjov, som en extension (hvis i regner med at benytter det meget):
namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { var myLinkbox = Page.FindControl<LinkButton>("myLinkbox"); } }
public static class LinqExtensions { public static T FindControl<T>(this Page page, string id) where T : Control { return page.Controls.OfType<T>().Single( c => c.ID == "myLinkbox" ); } } }
jeg siger rigtig mange tak til jer begge :) Jeg tror helt sikkert MVC bliver det næste jeg kaster blikket på :)
og bar for at afrunde fandt jeg en helt tredje løsning til og styre panelt med... ajax .. :) så nu er det simpelt og styre og få et fedt finish :)
WindCape hvis du nød og læse din warcraft bog(så lige din blog) så bestil dem www.fantask.dk istedet .. små 70 kr stykket .. har alle bøgerne.. de er ret fede de fleste af dem ..
Over and out :)
Synes godt om
Ny brugerNybegynder
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.