Hej, Hej! Hej! Hmmm, då blir det jobbigt. Det enda jag kan komma på annars är att loopa genom sidan efter kontroller, men vet inte om det blir speciellt bra då. Nää, det tror inte jag heller.. En tanke jag har funderat på är om man kan göra någon egen variant så att elementen på sidan själv kan hitta sin data. Kan det vara möjligt? Du kan inte ge den ett initialt id att alla masterpage den ska generera ska id börja på typ Master.... Ny tanke:Alternativ till Master.FindControl vid Nested Master Pages
jag håller på att bygga upp ett CMS och har fastnat lite. Använder mig av Master Pages för att skapa templates till sidan, och dessa skapas och redigeras online. När man sedan besöker en sida händer följande:
this.MasterPageFile = CmsPage.MasterPage;
foreach (CmsItem item in CmsPage.Items)
{
this.Master.FindControl(item.ControlName).Controls.Add(item.Control);
}
Det här fungerar fint så länge jag inte använder mig av just nested master pages. Då funkar det inte alls, och efter att ha kollat överallt på det Google gav verkar det omöjligt att lösa. Så nu söker jag en annan lösning. Går det att lösa detta över huvud taget?
En fundering jag hade var om man kunde få alla ContentPlaceHolders på en sida att leta upp sin data själva, men har nog ingen aning om hur jag ska lösa det. Hade det vart en möjlighet?
Tacksam för hjälp och idéer!
Sv: Alternativ till Master.FindControl vid Nested Master Pages
Har du provat :
http://aspalliance.com/1737_CodeSnip_Find_Control_in_Nested_Master_Pages
http://www.codeproject.com/KB/aspnet/Nested_Master_Pages.aspxSv:Alternativ till Master.FindControl vid Nested Master Pages
Nej, har inte gjort mer än att läsa igenom de båda artiklarna. Problemet är ju att mina master pages skapas av användaren själv, och denne lägger sedan in alla contentplaceholders som hör till master pagen i en tabell, och kan då fylla på innehåll i den. Sedan loopar jag igenom att contentplaceholders som var registrerade för den master som är vald för sidan som skall visas och lägger dit innehållet. Detta gör att jag inte vet namnet på den behållare som innehåller min contentplaceholder, och därför blir det svårt att lösa det så.
I och med detta har jag heller inte möjlighet att lägga till en codebehind till master pagen, då användaren skapar den online och utan codebehind.Sv: Alternativ till Master.FindControl vid Nested Master Pages
Sv:Alternativ till Master.FindControl vid Nested Master Pages
Att jag gör en egen klass som ärver Control eller något liknande, och sedan får denna vid Init själv leta upp sitt innehåll. Frågan är ju i så fall hur den får reda på ID:t på den sida som nu ska visas?
För det borde vara möjligt på något vis tycker jag..Sv: Alternativ till Master.FindControl vid Nested Master Pages
Kan ju underlätta.Sv:Alternativ till Master.FindControl vid Nested Master Pages
Om vi tänker att jag i min masterpage skriver:
<MyCustomControls:MyCustomContentHolder ID="CustomContent1">
</MyCustomControls:MyCustomContentHolder>
Om vi tänker mig att jag i MyCustomContentHolder.ctor() letar upp innehållet för dess ID (CustomContent1), kan jag då komma åt en variabel jag skapat i min .aspx-sida? I och med att den efterfrågade sidan kommer in med en QueryString (PageId=10). Kan jag då spara 10 någonstans så att min webbapplikation kan komma åt denna? För i så fall skulle ju MyCustomContentHolder.ctor() kunna ta det här ID:t, och fråga databasen efter "Ge mig innehållet till 'CustomContent1' för ID 10". Några idéer?