2009-05-14 6 views
0

Je souhaite simplement ajouter des vérifications Javascript lorsqu'un élément est inséré ou modifié. Le seul moyen que je connaisse pour le faire (en utilisant JavaScript en ligne) serait de désactiver les propriétés AutoGenerateXxxButton pour DetailsView et de créer les miennes. Les problèmes que j'ai est de les remplacer par des LinkButtons personnalisés (et de garder l'action par défaut) et d'ajouter du Javascript à eux. Y a-t-il un moyen de le faire facilement? La seule option que je vois est de modifier le modèle et les mettre dans le pied de page ou quelque chose.Personnalisation d'une barre de commande DetailsView

Conseils? Des trucs? Des choses manifestement évidentes qui me manquent?

Répondre

2

Je suis tombé sur ce wile à la recherche d'autres questions sur la vue détaillée. Ce qui est relativement facile à faire est de transformer ce champ en un champ modèle. Voici un code de tourner la ligne de commande de suppression dans un champ de modèle:

<asp:TemplateField ShowHeader="False"> 
    <ItemTemplate> 
     <asp:LinkButton ID="btnDelete" runat="server" CausesValidation="False" 
         CommandName="Delete" Text="Delete"></asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 

Vous pouvez mettre toutes les balises que vous lien dans le champ de modèle ...

Maintenant, pour ajouter un peu de JavaScript à ce bouton supprimer, vous pouvez le faire dans le gestionnaire d'événements DataBound pour le DetailsView:

Protected Sub dgFileDetails_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgFileDetails.DataBound 
    Dim btnDelete As LinkButton = CType(dgFileDetails.FindControl("btnDelete"), LinkButton) 
    If Not btnDelete Is Nothing Then 
     btnDelete.OnClientClick = String.Format("return confirm('Are you sure you want to delete the division {0}?');", dgFileDetails.DataKey.Value) 
    End If 
End Sub 

Je sais que cela fonctionne sur le bouton de suppression, mais vous devriez être en mesure de prendre ce concept vient des boutons d'insertion et de mise à jour aussi.

+0

C# version: (expéditeur d'objet, EventArgs e) OnDetailsViewDataBound protected void { \t bouton LinkButton = this.myDetailView.FindControl ("lnkDelete") comme LinkButton; \t si (bouton! = Null) \t { \t \t string message = "Etes-vous sûr de vouloir supprimer cet élément?"; \t \t button.OnClientClick = chaîne.Format ("return confirm ('{0}');", message); \t} } –

Questions connexes