.net2 gridview complet

Soyez le premier à donner votre avis sur cette source.

Snippet vu 56 983 fois - Téléchargée 28 fois

Contenu du snippet

Comment faire une gridview complete (ajout/edition/suppression) en ASP.NET 2.0

Source / Exemple :


<%@ Page Language="C#" Title="Untitled Page" %>

<script runat="server">

    protected void AddButton_Click(object sender, EventArgs e)
    {
        SqlDataSource1.Insert();
        GridView1.DataBind();
        GridView1.PageIndex=GridView1.PageCount;
        GridView1.EditIndex = GridView1.Rows.Count - 1;
        
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Manage currency</title></head>
<body>
    <div>
        <h3>Manage currencies</h3>
        <form action="Default.aspx" runat="server">
            <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
            DataKeyNames="id" AllowPaging="True"  AutoGenerateColumns="False" AllowSorting="True" >
              <Columns>
                 
                  <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                      SortExpression="id" />
                  <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 
                  <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
              </Columns>
            
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            SelectCommand="Select * from [currency] order by id" 
            InsertCommand="Insert into [currency] ([name]) values(@name)" 
            UpdateCommand="Update [currency] set [name]=@name where [id]=@id" 
            DeleteCommand="Delete from [currency] where [id]=@id; DBCC CheckIdent(currency,reseed,0); DBCC CheckIdent(currency,reseed)"  
            ConnectionString="<%$ ConnectionStrings:connexion %>"
            >
            <InsertParameters>
                <asp:Parameter Type="String" Name="name" DefaultValue="(new)" />
            </InsertParameters>
            </asp:SqlDataSource>
            <asp:LinkButton ID="AddButton" Text="Add new currency" runat="server" OnClick="AddButton_Click"/>
        
    </form></div>
    </body>
</html>

Conclusion :


Comme vous l'avez remarque ici, la table de la base de donnees est tres simple (une colonne id en numero automatique, et une colonne name (varchar)).
Si vous voulez plus complique n'hesitez pas a m'ecrire.

A voir également

Ajouter un commentaire

Commentaires

teogal
Messages postés
12
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 avril 2005
-
Ton code explique assez bien, mais il me reste un probleme, j essai de rajouter une colonne de boutons dans ma grille et de lui attribuer une fonction autre que delete update etc, je n arrive pas a trouver comment faire, j arrive bien a ajouter les boutons mais je n'arrive pas a leur coller une fonction quand on clique dessus... J ai galere toute une journee dessus j en peut plus
gldfdp
Messages postés
91
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
21 février 2008
-
Il suffit de rajouter une colonne de button field. Exemple:

Dans la balise de la gridview tu rajoutes:
OnRowCommand="GridView1_RowCommand"
Et dans le script:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "tacommande")
{
[Instructions]
}
}
teogal
Messages postés
12
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 avril 2005
-
MERCI!! ca marche enfin! il me manquait juste le bout de scipt! Mais j ai encore un autre probleme... Comment on recupere les infos qui correspondent a la ligne selectionnée? j ai cherche dans les attributs de "e" et de gridview mais je vois pas quoi faire....
teogal
Messages postés
12
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 avril 2005
-
J ai trouve ca dans la doc :
"Note The System.Web.UI.WebControls.GridViewCommandEventArgs class does not contain a property to indicate which row's button was clicked. If you need to know which row raised the event, pass the row's index to the event-handling method using the System.Web.UI.WebControls.CommandEventArgs.CommandArgument property."
seulement je ne vois pas comment rajouter un argument comme ils le disent...
teogal
Messages postés
12
Date d'inscription
mardi 26 avril 2005
Statut
Membre
Dernière intervention
28 avril 2005
-
Aperement il faudrait utiliser CommandArgument mais ce truc n est pas defini pour les boutonsfield, les linkbuttons l ont mais ne sont pas definis pour les gridview :-(

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.