Sätt ett id på kontrollen istället, och sätt värdet i koden. Borde väl vara mycket smidigare. Bort med alla fuliga gamla asp-lösningar... :)
------------------
Jag kan inte komma på någon signatur.
11 svar · 225 visningar · startad av aengman
Har skapat en UserControl som tar emot ett värde för vilken landskod som skall användas senare i kontrollen.
Då jag kallar på UserControllen använder jag följande kod.
<LANG:Flik CurrentLanguage="<%=CurrentLanguage%>" runat="server" />
Problemet är att UserControllen inte vill kännas vid inkommande värde för CurrentLanguage vars värde kan vara tex. "sv". Behöver kunna sätta värdet dynamsikt beroende på inloggad persns nationalitet.
[Redigerat av aengman den 19 dec 2001]
Sätt ett id på kontrollen istället, och sätt värdet i koden. Borde väl vara mycket smidigare. Bort med alla fuliga gamla asp-lösningar... :)
------------------
Jag kan inte komma på någon signatur.
Vill att värdet skall sätas dynamiskt beroden på inloggad persons val av språk, kan därför inte sätta värdet i koden. Eller?
Hej!
Man borde kunna göra något liknande det här:
<script language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
DinFlik.CurrentLanguage = Request.Form["dittForm"];
}
</script>
<LANG:Flik id="DinFlik" runat="server"/>
------------------
mvh André
Hej!
Man borde kunna göra något liknande det här:
<script language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
DinFlik.CurrentLanguage = Request.Form["dittForm"];
}
</script>
<LANG:Flik id="DinFlik" runat="server"/>
------------------
mvh André
Allt går, har jag fått lära mig! Varför skulle du inte kunna sätta värdet dynamiskt i koden? Jag antar att du har någon slags inloggning och en databas med användaruppgifter? Hämta användarens språkval från databasen och sätt det värdet på kontrollen. Jag är ingen expert på c# (ännu :)) men kan man inte göra något sånt här:
MyUserControl.CurrentLanguage = Language;
...där Language är den variabel med användarens önskade språk.
Aha, juventus1 hade visst redan svarat!
------------------
Jag kan inte komma på någon signatur.
[Redigerat av NETwork den 19 dec 2001]
Det fungerar om jag skriver
<LANG:Flik CurrentLanguage="sv" runat="server" ID="Lang" />
men inte om jag gör enligt juventus1 förslag (vilket jag tycker att det borde...)
script language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
Lang.CurrentLanguage = "sv";
}
</script>
<LANG:Flik id="Lang" runat="server"/>
Har du din usercontrol i en annan kontroll eller i en pagelet? Då måste du göra en findcontrol på kontrollen. Exempel:
((MyPagelet)Page.FindControl("MyPageletID")).FindControl("Lang").CurrentLanguage = Language;
Exakt vad är det du försöker göra? Vad ska den här kontrollen göra för något?
------------------
Jag kan inte komma på någon signatur.
[Redigerat av NETwork den 20 dec 2001]
---------------------
WebForm.aspx
---------------------
<%@ Register tagprefix="AENG" Tagname="Flik" Src="include/flik.ascx"%>
<AENG:Flik runat="server" ID="Flik" NAME="Flik"/>
---------------------
UserContol med namnet flik.ascx
---------------------
<%@ Control%>
<script language="C#" runat="server">
private String CurrentLanguage;
public String CurrentPageLanguage {
get {
return CurrentLanguage;
}
set {
CurrentLanguage = value;
}
}
</script>
CurrentPageLanguage är det värde jag vill kunna sätta via WebForm.aspx då flik.ascx anropas. Beroende på det värde visas sen olika texter och bilder.
Du har satt CurrentLanguage till "private" i flik.ascx.
------------------
AIDS :
Apple Infected Disk Syndrome
Det verkar som du försöker tilldela den privata variabeln CurrentLanguage ett värde men det borde istället vara din property som ska tilldelas det värdet.
<script language="c#" runat="server">
void Page_Load(object sender, EventArgs e)
{
DinFlik.[b]CurrentPageLanguage[/b] = Request.Form["dittForm"];
}
</script>
<LANG:Flik id="DinFlik" runat="server"/>
------------------
mvh André
[Redigerat av juventus1 den 22 dec 2001]