Ich habe Probleme mit dem Befehl Ereignisargumente nach dem zweiten Klick mit dem folgenden Code.Problem, commandeventargs in Befehlsereignis nach dem Neuerstellen der Steuerelemente in Postback
so - wenn ich einen Knopf klicke, und einen neuen Knopf erzeuge, um den zu ersetzen, der dort war, verliere ich den viewstate auf dem folgenden Knopfklick.
Irgendwelche Vorschläge, was ich tun muss, um dies zum Funktionieren zu bringen? Ich kann die Struktur nicht wesentlich ändern, da ich eine variable Anzahl von völlig unbezogenen Knöpfen im Befehlshandler erzeugen muss.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
LinkButton btn = new LinkButton();
btn.ID = "btn1";
this.Panel1.Controls.Add(btn);
btn.Command += new CommandEventHandler(myLinkButton_Command);
}
else
{
LinkButton btn = new LinkButton();
btn.ID = "btn1";
this.Panel1.Controls.Add(btn);
btn.Text = "My Button 1";
btn.CommandArgument = "1";
btn.Command += new CommandEventHandler(myLinkButton_Command);
}
}
void myLinkButton_Command(object sender, CommandEventArgs e)
{
int newArg = Convert.ToInt32(e.CommandArgument) + 1;// empty string on second mouse click
this.Panel1.Controls.Clear();
LinkButton myLinkButton = new LinkButton();
myLinkButton.ID = "btn1";
this.Panel1.Controls.Add(myLinkButton);
myLinkButton.Text = "My Button " + newArg.ToString();
myLinkButton.CommandArgument = newArg.ToString();
}
}
danke - ich glaube nicht, dass ich jemals daran gedacht hätte. Hoffentlich ist das ähnlich wie in meinem realen Projekt. – dice