webForumDet fria alternativet

Linkbutton kräver två klick för postback

.NET

4 svar · 276 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Hej!

Har råkat ut för ett skumtproblem och googlat men inte hittat någon lösning.

Det är så att jag skapar dynamiska linkbuttons och binder dessa till onclick, skickar med ett värde i en parameter som jag sedan plockar upp.

Sidan innehåller mycket kod så jag förklarar den kort här

PageLoad
Om sidan inte är postback, Bind massa data till en asp:tabel , skapar linkbuttons och binder dessa till metod för OnClick, samt parametern för varje linkbutton läggs till. Lägger in tabellen i en placeholder

Metod för OnClick
Skriver ny data i tabellen, på samma sätt som ovan och lägger in den i placeholdern.

Problemet är att eventet inte blir avfyrat så att säga förän man tryckt 2 gånger på en linkbutton. Det verkar ändå som den gör en postback för placeholdern blir tom. Jag har provat både med CommandArgument och Eventargs men det blev samma fel.

Någon som har någon som helst aning ?

Medlem sedan apr. 2004778 inlägg
#2

Visa koden där du skapar dina linkbuttons och binder dem till onclick.

Medlem sedan dec. 19996 522 inlägg
#3

Så här skapas en linkbutton

for (int i = 0; i < tmpTable.Rows.Count;i++)
{
LinkButton tmpBtn = new LinkButton();	
tmpBtn.ID = "lnkBtn_"+ tmpTable.Rows[i][0].ToString() +"|"+ tmpTable.Rows[i][1].ToString();		
tmpBtn.Click += new System.EventHandler(ArchiveButton_Command);					
tmpBtn.Attributes["YearMonth"] = tmpTable.Rows[i][0].ToString() +"|"+ tmpTable.Rows[i][1].ToString();
}

public void ArchiveButton_Command(object sender, System.EventArgs e) 
{
//Skapar en table och lägger in den i en placeholder	
}
Medlem sedan maj 20012 812 inlägg
#4

Det är alltid problem med knappar som skapas dynamiskt eftersom dessa inte finns när du gör din postback, alltså så kan man inte binda ditt postback event till ett objekt eftersom detta objekt inte finns tillgängligt i din kod, från du skapat det igen.

Om du kan klara dig utan att skapa de dynamiskt så är det bäst, annars så får du återskapa dina knappar innan Page_Load() funktionen, alltså du får spara undan ID på alla de linkbuttons som du skapat och återskapa dessa i typ Page_Init() funktionen och sedan bör det fungera.

Du skall inte behöva göra något med dessa knappar, endast skapa de som objekt, sedan sköter .NET resten.

- Magnus

Medlem sedan dec. 19996 522 inlägg
#5

Tack men knapparna skapas alltid även om det är postback eller inte. Krävs två klick ändå

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)