2009-06-12 14 views
1

Ich möchte dynamisch einen ASP.NET-LinkButton zu meinem SharePoint-Webpart hinzufügen. Ich hänge den LinkButton mit einem Event-Handler an, aber wenn ich den Code ausführe, scheint das Ereignis nie ausgelöst zu werden.ASP.NET-Steuerelement zum SharePoint-Webpart hinzufügen

Wo im Lebenszyklus (welches Ereignis) sollte ich eine solche Kontrolle hinzufügen und wie?

Danke.

Antwort

3

es in den Createchildcontrols() Ereignis in der webpart hinzufügen, wie:

protected override void CreateChildControls() 
{  
    LinkButton linkbutton = new LinkButton(); 
    linkbutton.Click += ClickButton; 
    this.Controls.Add(linkbutton); 

} 

protected void ClickButton(object sender, EventArgs e) 
{ 
    // handle event 
} 
2

Wenn Sie die Kontrolle Feuer ein Serverereignis Sie die Steuerung im Page_Init oder Page_Load Lebenszyklus registrieren müssen, muss für das Ereignis zu feuern. Wenn Sie das Steuerelement in der PreRender-Phase hinzufügen, ist es zu spät. Oder überschreiben Sie die CreateChildControls() -Methode und fügen Sie das Steuerelement in dieser Methode hinzu.

Sie sollten nichts tun müssen besondere die Kontrolle hinzuzufügen, nur:

 
    var linkButton = new LinkButton(); 
    // register event 
    Controls.Add(linkButton); 

0

Ich habe das gleiche Problem hatte. Durch das Hinzufügen des LinkButtons in CreateChildControls und das explizite Festlegen der ID und anschließendes Dekorieren meines WebParts mit der INamingContainer-Oberfläche wurde mein Problem behoben.