ASP.NET UserControl dynamisch hinzufügen, um Platzhalter, nicht Feuer-Click-Ereignis, nur Page_Load
In meinem ASP.Net Seite habe ich Platzhalter und Knopf. Wenn Benutzer klicken Sie auf diese Schaltfläche, füge ich einige Benutzersteuerelemente von meinem Interface-Methode getControl auf den Platzhalter. Code:
protected void ActionBtn_Click(object sender, EventArgs e)
{
if (provider != null)
{
actualObject = (PlaceHolder)provider.getControl();
PlaceHolder1.Controls.Add(actualObject);
}
}
Methode getControl:
public object getControl()
{
ph = new PlaceHolder();
exportInbBtn = new Button();
exportInbBtn.Text = "Export Inventury";
exportInbBtn.Click += new EventHandler(myButton_ServerClick);
ph.Controls.Add(exportInbBtn);
exportInbBtn.ID = "exportInbBtn";
return ph;
}
Methoden Page_Load und Page_Init in ASP-Seite sind leer. Problem ist, wenn der Benutzer klicken Sie auf die Schaltfläche exportInbBtn (mit text: "Export Inventury"), wird das click-Ereignis myButton_ServerClick nicht steigen. Nur-web-Seite aktualisieren. Ich bereit ein paar Antworten, aber ich kann nicht Bild wie dieses problem ganz einfach lösen.
- Gibt es eine Seite.LoadControl: codeproject.com/Articles/7908/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Feuer *myButton_ServerClick* Ereignis-Postbacks aufgerufen wird, und ASP.Net wollen Feuer als event, sondern zu Steuern, ist nicht auf der Seite Hinzugefügt, das ist, warum ASP.Net ignorieren Sie dieses Ereignis.
Nach postback und vor dem Ereignis ausgelöst werden, müssen Sie Ihre Kontrolle wieder und nach Ihnen, Ereignis aufgerufen wird.
Update
Sowas
Seite:
Code hinter:
Bitte beachten Sie, dass Benutzersteuerelemente Hinzugefügt werden, durch die folgenden Verfahren zu -
//Zuerst erstellen Sie die Instanz des Benutzersteuerelements
var control = Seite.LoadControl("~/folder1/UserControl1.ascx")
//Jetzt fügen Sie dieses Steuerelement, um als Platzhalter - placeHolder1.Controls.Add(control);
Ich hoffe, das hilft.
Seite.aspx
Seite.aspx.vb
Neu es jedem postback