fredrikMedlem sedan dec. 19991 072 inlägg Jag har skapat en UserControl med en DropDown-lista samt en "public sub".
Från min aspx-sida försöker jag nu att lägga till Kontrollen samt ropa på metoden...men det vägrar att funka...
<%@ Register TagPrefix="userCtrl" TagName="CtrlLocations" Src="ctrlLocations.ascx" %>
<userCtrl:CtrlLocations id="CtrlLocations1" runat="server"></userCtrl:CtrlLocations>
Denna kod använder jag för att lägga till kontrollen på sidan. Frågan är nu hur jag gör i min code-behind fil?
Hur kommer jag åt kontrollen, det räcker inte med att skriva "CtrlLocations1", då klagar den på att variablen är odeklarerad...och om jag deklarerar den så klagar den på att "Object not set..."...
Så....nån som vet hur det funkar?
GrynetMedlem sedan maj 2001329 inlägg JAg brukar alltid göra så här
((MyNameSpace.MyControl)Page.FindControl("MyControl1")).MyProperty = MyValue;
Kanske finns någe smartare?
fredrikMedlem sedan dec. 19991 072 inlägg Jag hittade faktiskt ett sätt (ganska logiskt eg.)
Protected WithEvents ctrlLocations1 As ctrlLocations
Alltså att helt enkelt deklarera en variablen med samma namn som ID.t på kontrollen.
Men tack för tipset, kan nog kommat till användning en annan gång!
Nu vidare...Jag vill nu Cacha denna kontrollen...Har läst att man ska lägga in:
<%@ OutputCache Duration="120" VaryByParam="none" %>
Men om jag gör det så funkar inte kontrollen längre, får då återigen "Object not set..."
Ska man Cacha på samma sätt i en Kontroll om man använder code-behind?
fredrikMedlem sedan dec. 19991 072 inlägg Har eventuellt lyckats med Cachningen nu med...
I min code-behind fil för user-controlen lägger jag i Page_Load följande kod:
Page.Response.Cache.SetExpires(Date.Now.AddHours(1))
Detta ska alltså cacha kontrollen i 1 timma.
Det verkar fungera...men jag är lite osäker på om den cachar hela sidan eller bara kontrollen.
Kan vara så att den cachar hela den sidan (innan jag gjort nån postback). För efter jag gör postback så hämtas data från en extern källa, och den ändras.