Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Lab04
But du Lab
Le but de ce Lab est de facilement manipuler les données à travers les contrôles Web
serveur fournis à l’aide d’ADO.NET.
- Ajouter dans le code de la page une méthode appelée « FillDataList() » qui va lier
la DataList à une base de données. Dans cet exemple, nous utiliserons la table
« authors » de la base de données « pubs » du serveur SQL local.
Page 1 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
- Paramétrer la DataList afin d’afficher les données. Pour cela, dans le code HTML de la
page, ajouter un « ItemTemplate » entre les balises ouvrantes et fermantes du contrôle
DataList comme montré ci-dessous.
<ItemTemplate>
<table bgcolor="#f0f0f0" width="100%">
<tr bgcolor="#000000">
<td colspan="2">
<asp:Label Font-Bold="True" ForeColor="#ffffff"
text='<%#Databinder.Eval(Container.DataItem, "au_id")%>' Runat="server"
ID="Label1"/>
</td>
</tr>
<tr>
<td>Prénom :</td>
<td>
<%#Databinder.Eval(Container.DataItem, "au_fname")%>
</td>
</tr>
<tr>
<td>Nom :</td>
<td>
<%#Databinder.Eval(Container.DataItem, "au_lname")%>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button CommandName="Edit" Text="Edition"
Runat="server" ID="Button1"/>
</td>
</tr>
</table>
</ItemTemplate>
- Un ItemTemplate est un modèle qui est utilisé pour l'affichage de chaque élément
de la liste retournée par la requête SQL. Ce modèle va afficher les données de la
manière suivante :
o Chaque élément de la liste est affiché sous forme de tableau.
o L'identifiant de l'auteur est affiché dans un Label.
o Le nom de l'auteur est rendu en tant que texte.
o Un bouton est ajouté à ce modèle afin de passer en mode "Edition".
Page 2 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
<EditItemTemplate>
<table bgcolor="#f0f0f0" width="100%">
<tr bgcolor="#000000">
<td colspan="2">
<asp:Label id="lblId" Font-Bold="True"
ForeColor="#ffffff" text='<%#Databinder.Eval(Container.DataItem,
"au_id")%>' Runat="server" />
</td>
</tr>
<tr>
<td>Prénom :</td>
<td>
<input type="text" id="txtFirst"
value='<%#Databinder.Eval(Container.DataItem, "au_fname")%>'
runat="server" NAME="txtFirst"/>
</td>
</tr>
<tr>
<td>Nom :</td>
<td>
<input type="text" id="txtLast"
value='<%#Databinder.Eval(Container.DataItem, "au_lname")%>' runat="server"
NAME="txtLast"/>
</td>
Page 3 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
</tr>
<tr>
<td colspan="2">
<asp:Button CommandName="Update" Text="Mettre à jour"
Runat="server" ID="Button2"/>
<asp:Button CommandName="Cancel" Text="Annuler"
Runat="server" ID="Button3"/>
</td>
</tr>
</table>
</EditItemTemplate>
Page 4 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
SqlConnection("server=(local);database=pubs;user id=sa;password=
saPassword")
sql = "update authors set au_fname='" & _first & "', "
sql = sql & "au_lname='" & _last & "' where au_id='" & _id & "'"
cnn.Open()
cmd.ExecuteNonQuery()
cnn.Close()
End Sub
DataList1.EditItemIndex = -1
fillDataList()
End Sub
- Tester la mise à jour des données : Modifier le nom ou le prénom d'un auteur et
cliquez sur le bouton « Mettre à jour ». Observer que la modification a été prise
en compte et que la liste affiche maintenant les auteurs avec la valeur saisie.
- Il ne reste plus qu'à gérer le clic sur le bouton « Annuler ». Pour cela, écrire le
gestionnaire d'événement « CancelCommand » du contrôle DataList.
- Dans ce gestionnaire, sortir du mode édition en précisant -1 comme valeur de
EditItemIndex du contrôle DataList, puis réafficher la liste.
Page 5 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
Page 6 sur 7
Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]
MyConnection = New
SqlConnection("server=(local);database=northwind;user id=sa;password=
saPassword")
MyCommand.SelectCommand.CommandType = CommandType.StoredProcedure
MyCommand.SelectCommand.Parameters.Add(New
SqlParameter("@Beginning_Date", SqlDbType.DateTime))
MyCommand.SelectCommand.Parameters("@Beginning_Date").Value =
Calendar1.SelectedDate
MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@Ending_Date",
SqlDbType.DateTime))
MyCommand.SelectCommand.Parameters("@Ending_Date").Value =
Calendar2.SelectedDate
DS = New DataSet
MyCommand.Fill(DS, "Sales")
DataGrid1.DataSource = DS.Tables("Sales").DefaultView
DataGrid1.DataBind()
End Sub
Page 7 sur 7