webForumDet fria alternativet

Dynamiska User Controls

11 svar · 223 visningar · startad av aengman

aengmanMedlem sedan dec. 200150 inlägg
#1

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]

NETworkMedlem sedan juni 20011 732 inlägg
#2

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.

aengmanMedlem sedan dec. 200150 inlägg
#3

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?

juventus1Medlem sedan dec. 2000399 inlägg
#4

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é

juventus1Medlem sedan dec. 2000399 inlägg
#5

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é

NETworkMedlem sedan juni 20011 732 inlägg
#6

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]

aengmanMedlem sedan dec. 200150 inlägg
#7

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"/>

NETworkMedlem sedan juni 20011 732 inlägg
#8

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]

juventus1Medlem sedan dec. 2000399 inlägg
#9

Kan du visa all kod på sidan?

------------------
mvh André

aengmanMedlem sedan dec. 200150 inlägg
#10

---------------------
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.

RGBMedlem sedan dec. 1999419 inlägg
#11

Du har satt CurrentLanguage till "private" i flik.ascx.

------------------
AIDS :
Apple Infected Disk Syndrome

juventus1Medlem sedan dec. 2000399 inlägg
#12

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]

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)