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