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
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.
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
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.
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);
}
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
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.