---
title: "Hitta kontroll i panel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/105857-hitta-kontroll-i-panel"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "erka"
published: "2004-06-20T12:49:13.000Z"
updated: "2004-06-20T21:20:35.000Z"
replies: 10
views: 429
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/105857-hitta-kontroll-i-panel"
---

# Hitta kontroll i panel

## #1 — erka, 2004-06-20T12:49Z

Hej
Jag har på min sida två paneler, pnl1 och pnl2. pnl1 innehåller en del textboxar och när man klickat på en knapp i den döljs pnl1 och pnl2 visas samtidigt som informationen från pnl1's textboxar ska in i en databas. Men jag får inte ut värdet ifrån mina textboxar i pnl1.

I min codebehind har jag som exempel deklarerat följande

protected System.Web.UI.WebControls.TextBox txtBoxFörNamn;

i koden för knapptrycket har jag följande

```
pnl1.Visible = false;
pnl2.Visible = true;

User tmpUser = new User();
TextBox tmpTextBox;

tmpTextBox = (TextBox)pnl1.FindControl("txtBoxFörNamn");
tmpUser.firstname = tmpTextBox.toString();
```

Men det finns inget värde i min tmpTextBox, någon som vet vad jag gör för fel eller hur man ska göra för att korrekt hitta ett värde i en textbox som ligger i en panel.

Mvh
Erka

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

## #2 — PDahlen, 2004-06-20T13:44Z

Du behöver inte använda FindControl för kontroller som ligger i en Panel. Det är bara att deklarera dom och använda dom som vanligt i code-behind.

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

## #3 — erka, 2004-06-20T15:50Z

Patrik, det var det jag antog också, men det funkar likt förbenat inte heller.

Kör jag denna kod i mitt knapptryck, ger inget värde i tmpUser.firstname (och ja klasses fungerar som den ska, det finns inget värde i txtBoxFörNamn.text)

```
pnl1.Visible = false;
pnl2.Visible = true;

User tmpUser = new User();
tmpUser.firstname = txtBoxFörNamn.Text.ToString();
```

och överst i codebehinden har jag deklarerat
protected System.Web.UI.WebControls.TextBox txtBoxFörNamn;

Provar jag att lägga till en label i min pnl2 och där skriva ut värdet från txtBoxFörNamn är det tomt, skriver jag dock ut något annat i min label tex Hej fungerar det.

Mycket märkligt och jag kan inte se vad som är fel.

Red.
Det verkar som om när jag klickar på knappen töms texten i mina textboxar, vad är det jag har tänkt fel någonstanns

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

## #4 — PDahlen, 2004-06-20T15:55Z

Ok, då är felet inte i dina boxar och paneler utan i Page_Load. Där har du förmodligen kod som tömmer boxarna. Du måste lägga till ett
\[code\]
 If (!(Page.IsPostBack)) {
}
\[/code\>
och så lägger du din Page_Load kod innanför den If-satsen. Annars så är boxarna tomma när knappeventen körs.

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

## #5 — erka, 2004-06-20T16:14Z

Tack men det strular fortfarande, så här ser det ut nu.

CodeBehind

```
protected System.Web.UI.WebControls.Panel pnlStep2;
protected System.Web.UI.WebControls.Panel pnlStep1;
protected System.Web.UI.WebControls.TextBox txtBoxFörNamn;
protected System.Web.UI.WebControls.TextBox txtBoxEfternamn;
protected System.Web.UI.WebControls.TextBox txtBoxEpost;
protected System.Web.UI.WebControls.TextBox txtBoxLösenord;
protected System.Web.UI.WebControls.TextBox txtBoxPresentation;
protected System.Web.UI.WebControls.CheckBox chkBoxAvtal;
protected System.Web.UI.WebControls.TextBox txtBoxGlömtEpost;
protected System.Web.UI.WebControls.LinkButton lnkBtnRegistrer;

private void Page_Load(object sender, System.EventArgs e)
{
	if (!(Page.IsPostBack)) {
		pnlStep1.Visible = true;
		pnlStep2.Visible = false;
	}
		
}

private void lnkBtnRegistrer_Click(object sender, System.EventArgs e)
{			
	
	//Bara för att testa slänger jag in det i en label i pnlStep1
	pnlStep1.Visible = false;
	pnlStep2.Visible = true;
	Label tmpLbl = new Label();
	tmpLbl.Text = txtBoxFörNamn.Text.ToString();			
	pnlStep1.Controls.Add(tmpLbl);
}
```

ASPX

```
<form id="Form1" method="post" runat="server">
<asp:Panel id="pnlStep1" runat="server" Visible="False">
<asp:textbox id="txtBoxFörNamn" runat="server" CssClass="Text" Width="150px" MaxLength="50"></asp:textbox>
<asp:textbox id="txtBoxEfternamn" runat="server" CssClass="Text" Width="150px" MaxLength="50"></asp:textbox>
<asp:textbox id="txtBoxEpost" runat="server" CssClass="Text" Width="150px" MaxLength="50"></asp:textbox>
<asp:textbox id="txtBoxLösenord" runat="server" CssClass="Text" Width="150px" MaxLength="15"></asp:textbox>
<asp:textbox id="txtBoxPresentation" runat="server" CssClass="Text" Width="300px" MaxLength="500" TextMode="MultiLine" Rows="10"></asp:textbox>						
<asp:CheckBox id="chkBoxAvtal" runat="server"></asp:CheckBox>
<asp:LinkButton id="lnkBtnRegistrer" runat="server" CssClass="Text">Registrera dig</asp:LinkButton>
</asp:Panel>

<asp:Panel id="pnlStep2" runat="server" Visible="false">Du registrerade dig som användare och kan nu logga in med ditt konto.</asp:Panel>
</form>
```

Hmmm ser inget fel i denna kod

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

## #6 — PDahlen, 2004-06-20T16:23Z

Körs din klick-funktion överhuvudtaget?
Om du lägger in en Response.Write("I funktionen") och klickar på knappen, skriver den ut det då?

Anledningen att jag frågar är att jag inte ser någon eventhandler för knappen. T.ex. OnClick="lnkBtnRegistrer_Click" i taggen.

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

## #7 — erka, 2004-06-20T16:26Z

Jorå den körs eftersom skriver jag den likt detta får jag fram det

```
private void lnkBtnRegistrer_Click(object sender, System.EventArgs e)
{			
	
	//Bara för att testa slänger jag in det i en label i pnlStep1
	pnlStep1.Visible = false;
	pnlStep2.Visible = true;
	Label tmpLbl = new Label();
	tmpLbl.Text = "Hejsan svejsan";		
	pnlStep1.Controls.Add(tmpLbl);
}
```

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

## #8 — PDahlen, 2004-06-20T16:29Z

Men i exemplet och koden ovan sätter du pnlStep1.Visible = false, ska det inte vara true om det är till pnlStep2 du addar en label?

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

## #9 — erka, 2004-06-20T16:36Z

Oj mitt fel, blev fel i klipp och klistra. Givetvis menade jag
pnlStep2.Controls.Add(tmpLbl);, jag bytte namn på dem när jag klistra in dem här för tydlighetens skull. Men svaret är fortfarande det samma.

/Red
Det är så sjukt märkligt, har gjort så här på flertalet andra sidor och då har det funkat. Gör om sidan från scratch så ska vi se om det fungerar bättre

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

## #10 — erka, 2004-06-20T21:02Z

Nu verkar det fungera, gjorde om allt från början. Mycket märkligt då koden blev exakt det samma, provade och jämföra både aspx och codebehind filen i en texteditor med compare metod.

Följfråga som någon kanske har en bra lösning på.

Det är ju så att om man klickat på knappen i min första panel döljs den och panel2 kommer samt att informationen från panel1 läggs till i databasen. Men om man har klickat på knappen och står vid panel2 så att säga, och man trycker på f5 så körs ju knapptryckningen igen och informationen läggs in i databasen på nytt. Går detta att lösa på något smidigare sätt än att kolla i databasen.

Mvh
Erka

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

## #11 — Dino, 2004-06-20T21:20Z

Brukar göra så här.

```
//.aspx
<asp:button id="btClick" text="Click" runat="server" />

//.aspx.cs
protected Button btClick;
private void Page_Load(object sender, System.EventArgs e)
{
   if(!IsPostBack)
   {
      Session["grr"] = true;
   }
}

private void btClick_Click(object sender, System.EventArgs e)
{
   if((bool)Session["grr"])
   {
      Response.Write("Hej");
      Session["grr"] = false;
   }
}
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/105857-hitta-kontroll-i-panel
