2 pièce(s) jointe(s)
Récuperer id dans gridview en utilisant checkbox
Bonjour,
je commence par expliquer ce que je fais dans cette opération:
j'ai un gridview comme montre l'image ci-dessus.
quand je selectionne une ligne je clique sur le button modifier et les info de cette ligne s'affiche dans des textbox pour que je les modifie .
le problème se pose ici , c'est que je ne sais pas comment modifier ces info comme montre la 2eme image (select a row) selon un id qui est en mode (hidden) dans la gridview .
voilà ma grid :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <asp:GridView ID="gv_enfant" runat="server" AutoGenerateColumns="False" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1"
Width="533px">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="CheckBoxenfant" runat="server" />
<asp:HiddenField ID="codeenfant" runat="server" Value='<%# Eval("codeEnfants") %>' /> </ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="prenom" HeaderText="prenom" SortExpression="prenom" />
<asp:BoundField DataField="DateNaissance" HeaderText="Date Naissance" DataFormatString="{0:d}"
SortExpression="DateNaissance" />
<asp:BoundField DataField="Scolarise" HeaderText="Scolarise" SortExpression="Scolarise" />
<asp:BoundField DataField="Activite" HeaderText="Activite" SortExpression="Activite" />
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView> |
ET voila mon code pour modifier sauf que j'ai besoin d'une sorte de méthode pour avoir cet id (myid) dans la partie mise en GRAS .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
protected void btnValiderModifier_Click(object sender, EventArgs e)
{
try
{
string id = "";
for (int i = 0; i < gv_enfant.Rows.Count; i++)
{
CheckBox chbox = (CheckBox)gv_enfant.Rows[i].Cells[0].FindControl("CheckBoxenfant");
if (chbox.Checked)
{
id = gv_enfant.Rows[i].Cells[0].Text;
id = ((HiddenField)gv_enfant.Rows[i].Cells[0].FindControl("codeenfant")).Value;
c.cmd = c.cn.CreateCommand();
c.cmd.CommandText = "update Enfants set prenom =@prenom, DateNaissance=@dateNaissance, Scolarise=@scolarise, Activite=@activite where codeEnfants=@codeEnfants";
if (c.cn.State == ConnectionState.Closed)
{
c.cn.Open();
}
c.cmd.Parameters.Add("@prenom", SqlDbType.VarChar);
c.cmd.Parameters.Add("@dateNaissance", SqlDbType.Date);
c.cmd.Parameters.Add("@scolarise", SqlDbType.VarChar);
c.cmd.Parameters.Add("@activite", SqlDbType.VarChar);
c.cmd.Parameters.Add("@codeEnfants", SqlDbType.Int);
c.cmd.Parameters["@prenom"].Value = TextBox_NPmodif.Text;
c.cmd.Parameters["@dateNaissance"].Value = TextBox_DNmodif.Text;
c.cmd.Parameters["@scolarise"].Value = TextBox_Scolarisemodif.Text;
c.cmd.Parameters["@activite"].Value = TextBox_Activitemodif.Text;
c.cmd.Parameters["@codeEnfants"].Value = id;
c.cmd.ExecuteNonQuery();
gv_enfant.DataBind();
//success!
Response.Write("<script>alert('Opération reussie')</script>");
}
}
}
catch (SqlException sqlEx)
{
//fail!
//what is the point of cacthing if you do use the exception?
Response.Write("error" + sqlEx.Message);
Response.Write("<script>alert ('Erreur lors de la modif!')</script>");
}
finally
{
if (c.cn.State == ConnectionState.Open)
{
c.cn.Close();
}
}
} |
j'espere que vous pourriez m'aider , merci beacoup