Une manière toute simple pour faire en sorte de demander à l'utilisateur de confirmer une demande de Suppression faites en cliquant sur le lien DELETE d'une GridView :
transformer votre
<asp:CommandField ShowDeleteButton="True" />
en TemplateField. Vous pouvez le faire très facilement depuis le Designer de Visual Studio ou à la mimine (aussi très rapidement).
En gros votre bouton Delete devient :
<asp:TemplateField ShowHeader="False">
<ItemTemplate><asp:LinkButton ID="LinkButtonDelete" runat="server" CausesValidation="false" CommandName="Suppr" Text="Delete"
CommandArgument='<%#Eval("id") %>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Bonne nouvelle :
- vous pouvez passer du coup un CommandArgument (ce qui n'est pas vrai avec un CommandField !)
ATTENTION :
- Si vous indiquez CommandName="Delete" vous allez provoquer un Evenement RowDeleting que vous devrez forcément gérer ! Avec ce que cela implique : pas de CommandArgument disponible dans ce cas. C'est pour cela que je renomme le commandName en Suppr.
- Du coup je gère mon action de suppression dans RowCommand au lieu de RowDeleting. Cela revient au même (sauf que j'ai mon commandArgument).
Mais ce n'est pas le sujet... Nous on voulait faire en sorte que l'utilisateur soit obligé de valider son action. Et donc il suffit d'ajouter :
OnClientClick="return confirm('Are you sure ?');"
ce qui nous donne au final :
<asp:TemplateField ShowHeader="False">
<ItemTemplate><asp:LinkButton ID="LinkButtonDelete" runat="server" CausesValidation="false" CommandName="Suppr" Text="Delete"
CommandArgument='<%#Eval("id") %>' OnClientClick="return confirm('Are you sure ?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Trop simple :-)
Bonjour,
bonne année aux rares lecteurs de ce blog :-)
J'ai commencé l'année en décidant d'enfin utiliser le TreeView proposé en ASP.NET 2.0... Et je n'ai pas été déçu tellement il est simple à utiliser.
Pour la toute première utilisation, il suffira de faire un fichier web.sitemap qui devra décrire notre arborescence de menu. Exemple :
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="Menu">
<siteMapNode title="Accueil" url="~/index.aspx" >
</siteMapNode>
<siteMapNode title="Categorie1">
<siteMapNode title="Page1 de la Categorie1" url="~/categorie1/page1.aspx"></siteMapNode>
<siteMapNode title="Page2 de la Categorie1" url="~/categorie1/page2.aspx"></siteMapNode>
</siteMapNode>
<siteMapNode title="Categorie2">
<siteMapNode title="Page1 de la Categorie2" url="~/categorie2/page1.aspx"></siteMapNode>
<siteMapNode title="Page2 de la Categorie2" url="~/categorie2/page2.aspx"></siteMapNode>
</siteMapNode>
</siteMapNode>
</siteMap>
On vient grosso mode de décrire :
MENU
|
|--Categorie1
| |--Page1 de la Categorie1
| |--Page2 de la Categorie1
|--Categorie2
|--Page1 de la Categorie2
|--Page2 de la Categorie2
D'après le descriptif XML, Menu n'est pas un lien , ni Categorie1, ni Categorie2. Mais cela pourrait être le cas ! il suffirait d'ajouter le paramètre URL comme nous l'avons fait pour Page1 et Page2 dans chaque catégorie.
Le fichier XML prêt... Il suffit maintenant dans notre page ASPX où l'on veut afficher le menu d'écrire ceci :
<asp:TreeView DataSourceID="SiteMapDataSource1" ID="TreeView1" ImageSet="Simple2" Runat="server" OnDataBound="TreeView1_DataBound" ExpandDepth="0"/>
<asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server"/>
Evidemment, on peut se caler sur autre chose que le SiteMap du site ! On peut fournir n'importe quelle source. Mais comme on le voit à l'exécution... Rien de plus simple que de faire des menus attractifs...
Donc pensons plus souvent au TreeView :-D