2010-12-15 51 views
0

J'ai un UserControl personnalisé qui affiche un popup modal (à partir de la boîte à outils Ajax). Le contrôle permet à l'utilisateur d'ajouter une note à un enregistrement client que la page parent affiche dans un GridView.Page parent de retour lors de l'utilisation d'un contrôle ASP.NET ModalPopup

Je ne parviens pas à forcer la page parente à recharger la grille après que l'utilisateur a cliqué sur le bouton "Ajouter une note" dans la fenêtre modale et la ferme. La note est correctement ajoutée à la base de données, mais je dois actualiser manuellement la page pour l'afficher au lieu de la rafraîchir automatiquement lorsque j'aurai sauvegardé + fermer la fenêtre contextuelle.

Répondre

0

Vous pouvez utiliser un délégué pour déclencher un événement dans la page parent une fois la note ajoutée à la base de données.

// Declared in Custom Control. 
// CustomerCreatedEventArgs is custom event args. 
public delegate void EventHandler(object sender, CustomerCreatedEventArgs e); 
public event EventHandler CustomerCreated; 

Après avoir ajouté une note, déclenchez l'événement de page parent.

// Raises an event to the parent page and passing recently created object. 
    if (CustomerCreated != null) 
    { 
     CustomerCreatedEventArgs args = new CustomerCreatedEventArgs(objCustomerMaster.CustomerCode, objCustomerMaster.CustomerAddress1, objCustomerMaster.CustomerAddress2); 
     CustomerCreated(this, args); 
    } 

Dans la page parent, implémentez l'événement requis pour remplir à nouveau grdiview.

protected void CustomerCreated(object sender, CustomerCreatedEventArgs e) 
{ 
    try 
    { 
     BindGridView(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

Dans votre cas, vous ne pouvez pas utiliser d'argument d'événement personnalisé et utiliser la classe EventArgs elle-même.

+0

Des merveilles accomplies. Merci! – user543761