2009-10-06 4 views
2

Je dois donc ajouter des boutons de liaison à chaque cellule d'un contrôle asp: calendar de manière dynamique en fonction des données de la base de données. Je me demande quelle est la meilleure façon de faire cela pour que les boutons de liens soient câblés à leurs événements en postbacks (à ma connaissance en créant les boutons de lien sur l'événement Day Render et en les ajoutant après les événements LinkButton avoir tiré).Ajout de LinkButtons pendant l'événement OnDayRender d'ASP.NET Calendar Control

Est-ce que quelqu'un a une bonne façon de gérer cela?

Répondre

2

EDIT: Ceci est un hack mais il fonctionne, vous devrez obtenir rusée avec l'événement nommant ... etc

Markup:

<asp:Calendar id="calendar1" 
       OnDayRender="DayRender" 
       runat="server"> 

<asp:LinkButton ID="LinkButton1" style="display:none;" runat="server" 
    onclick="LinkButton1_Click">LinkButton</asp:LinkButton> 

code-behind:

protected void DayRender(Object source, DayRenderEventArgs e) 
{ 

    LinkButton lb = new LinkButton(); 
    lb.ID = "LinkButton1"; 
    //set all your props 
    lb.Attributes.Add("href", 
     "javascript:__doPostBack('" + Calendar1.UniqueID + "$" + lb.ClientID +"','')"); 

    e.Cell.Controls.Add(lb); 

} 

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    //do something 
} 
+0

L'événement DayRender ne survient-il pas après l'événement OnClick? Si oui, alors votre réponse ne fonctionnera pas puisque l'événement Click a déjà été traité avant que le LinkButton ne soit initialisé pour le gérer. – Streklin

+0

@Rick Schott - C'est très cool, mais j'ai du mal à transmettre un identifiant unique lorsque le clic se produit pour savoir quel événement a été sélectionné. –