---
title: "Dynamiska User Controls"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/20297-dynamiska-user-controls"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "aengman"
published: "2001-12-19T11:20:00.000Z"
updated: "2001-12-22T09:41:00.000Z"
replies: 11
views: 257
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/20297-dynamiska-user-controls"
---

# Dynamiska User Controls

## #1 — aengman, 2001-12-19T11:20Z

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\]

Permalänk: https://www.webforum.nu/p/20297

## #2 — NETwork, 2001-12-19T12:15Z

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

Permalänk: https://www.webforum.nu/p/349210

## #3 — aengman, 2001-12-19T12:27Z

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?

Permalänk: https://www.webforum.nu/p/349211

## #4 — juventus1, 2001-12-19T14:20Z

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

Permalänk: https://www.webforum.nu/p/349212

## #5 — juventus1, 2001-12-19T14:20Z

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

Permalänk: https://www.webforum.nu/p/349213

## #6 — NETwork, 2001-12-19T14:31Z

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!

Permalänk: https://www.webforum.nu/p/349214

## #7 — aengman, 2001-12-20T10:23Z

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

Permalänk: https://www.webforum.nu/p/349215

## #8 — NETwork, 2001-12-20T10:53Z

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?

Permalänk: https://www.webforum.nu/p/349216

## #9 — juventus1, 2001-12-20T14:02Z

Kan du visa all kod på sidan?

Permalänk: https://www.webforum.nu/p/349217

## #10 — aengman, 2001-12-21T09:50Z

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

Permalänk: https://www.webforum.nu/p/349218

## #11 — RGB, 2001-12-21T13:41Z

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

Permalänk: https://www.webforum.nu/p/349219

## #12 — juventus1, 2001-12-22T09:41Z

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

Permalänk: https://www.webforum.nu/p/349220

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/20297-dynamiska-user-controls
