Bouton edit de mon gridview ne fonctionne qu'une seule fois

Résolu
vitruve - 19 sept. 2017 à 16:58
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 20 sept. 2017 à 12:38
Bonjour, Peut etre avez vous la solution à mon pbe. J'ai un gridview avec differentes colonnes dont une contient un bouton edit. Celui ci déclenche l'apparition d'un popup. Tout fonctionne bien la 1ere fois, mais lorsque je clique une nouvelle fois sur le bouton edit, plus rien ne se passe.

Voici mon code aspx :

<div class="row">
<div class="col-md-12">
<asp:GridView ID="GridView1" runat="server" CssClass="footable" AutoGenerateColumns="false" Style="max-width:500px">
<Columns>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="Image3" runat="server" Height = "100" Width = "100" ImageUrl = '<%# Eval("id_perso", "ImageCSharp2.aspx?ImageID={0}")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id_perso" HeaderText="ID" ItemStyle-HorizontalAlign="center" Visible="false" />
<asp:BoundField DataField="statut" HeaderText="Statut" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="nom_perso" HeaderText="Nom" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="prenom_perso" HeaderText="Prénom" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="adresse_perso" HeaderText="Adresse" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="code_postal_perso" HeaderText="Code Postal" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="ville_perso" HeaderText="Ville" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="tel_perso" HeaderText="Téléphone" ItemStyle-HorizontalAlign="center" />
<asp:BoundField DataField="mail_perso" HeaderText="Email" ItemStyle-HorizontalAlign="center" />
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Button id="btnEdit" runat="server" Text="Editer" OnClick="Edit" CommandArgument='<%# Eval("id_perso") %>' class="btn btn-primary" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Button ID="btnSupprimer" runat="server" Text="Supprimer" OnClick="Delete" CommandArgument='<%# Eval("id_perso") %>' CssClass="btn btn-danger" />
</ItemTemplate>
</asp:TemplateField>


</Columns>

</asp:GridView>
</div>
</div>
<asp:LinkButton ID="lnkFake" runat="server"></asp:LinkButton>

<asp:Panel ID="pnlAddUpdatePersonnelDetails" runat="server" CssClass="modalPopup" Style="Display:none;">
<div style="overflow-y:auto;overflow-x:hidden;max-height:450px;width:600px;">
<div class="modal-header">
<asp:Label ID="lblHeading" runat="server" CssClass="modal-title"></asp:Label>
</div>
<div class="modal-body">
<div class="col-md-3">
<asp:Image ID="Image2" runat="server" ImageAlign="Middle" Width="100px" Height="100px" Style="border:1px solid black;"/>
<asp:TextBox ID="txtStatut" runat="server" Text="Label"></asp:TextBox>
</div>

<div class="col-md-9">
<div class="form-group col-md-12">
<div class="col-md-6">
<label for="txtGenre" runat="server">Genre :</label>
</div>
<div class="col-md-6">
<asp:TextBox ID="txtGenre" runat="server" CssClass="form-control" ReadOnly="true"></asp:TextBox>
</div>
</div>

<div class="form-group col-md-12">
<div class="form-group">
<div class="row">
<div class="col-md-3">
<label for="txtNom">
Nom
</label>
</div>
<div class="col-md-6">
<asp:TextBox ID="txtNom" runat="server" CssClass="form-control" placeholder="Nom" Width="150px"></asp:TextBox>
</div>
</div>
</div>
</div>

<div class="form-group col-md-12">
<div class="col-md-6">
<label for="txtPrenom">
Prénom :
</label>
</div>
<div class="col-md-6">
<asp:TextBox ID="txtPrenom" runat="server" CssClass="form-control" Width="150px" ReadOnly ="false"></asp:TextBox>
</div>
</div>
<div class="form-group col-md-12">
<div class="col-md-6">
<label for="FileUpload2">Modifier la photo :</label>
</div>
<div class="col-md-6">
<asp:FileUpload ID="FileUpload2" runat="server" CssClass="btn btn-warning"/>
</div>
</div>
</div>
</div>

<div align="center" class="modal-footer">
<div class="row">
<div class="col-md-12">
<asp:HiddenField ID="hfAddEditPersonnelId" runat="server" Value="0" />
<asp:HiddenField ID="hfAddEdit" runat="server" Value="ADD" />
<asp:Button ID="btnSave" runat="server" Text="Sauvegarder" OnClick="Save" CssClass="btn btn-success" ValidationGroup="Personnel" />
<button id="btnCancel" runat="server" class="btn btn-primary">Annuler</button>
</div>
</div>
</div>
</div>
</asp:Panel>

<uc:ModalPopupExtender ID="mpeAddUpdatePersonnel" runat="server" PopupControlID="pnlAddUpdatePersonnelDetails" TargetControlID="lnkFake" BehaviorID="mpeAddUpdatePersonnel" CancelControlID="btnCancel" BackgroundCssClass="modalBackground" ></uc:ModalPopupExtender>


Code behind :

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindPerso();
}
}

private void BindPerso()
{
DataTable dt = new DataTable();
using (RestauDBEntities1 db = new RestauDBEntities1())
{
if (db.PERSONNEL.Count() > 0)
{
GridView1.DataSource = (from pers in db.PERSONNEL select new { pers.id_perso, pers.statut, pers.nom_perso, pers.prenom_perso, pers.adresse_perso, pers.code_postal_perso, pers.ville_perso, pers.date_entree_perso, pers.salaire_brut, pers.tel_perso, pers.mail_perso, pers.secu_perso, pers.date_naissance, pers.lieu_naissance, pers.genre, pers.pseudo, pers.mdp, pers.picture, pers.observation }).ToList();

GridView1.DataBind();
}
else
{
GridView1.DataSource = null;
GridView1.DataBind();
}
}

}

public void Edit(object sender, EventArgs e)
{
//Label2.Visible = false;
lblHeading.Text = "Update Employee Details";
hfAddEditPersonnelId.Value = (sender as Button).CommandArgument;

try
{
using (RestauDBEntities1 db = new RestauDBEntities1())
{
if(db.PERSONNEL.Count() > 0)
{
int persoID = Convert.ToInt16(hfAddEditPersonnelId.Value);
PERSONNEL persoObject = (from p in db.PERSONNEL
where p.id_perso == persoID
select p).FirstOrDefault();
txtNom.Text = Convert.ToString(persoObject.nom_perso);
txtPrenom.Text = Convert.ToString(persoObject.prenom_perso);


byte[] barrImg = (byte[])persoObject.picture;

if (barrImg != null && barrImg.Length > 0)
{

string base64String = Convert.ToBase64String(barrImg, 0, barrImg.Length);
Image2.ImageUrl = "data:image/jpg;base64," + base64String;
}

mpeAddUpdatePersonnel.Show();
}
}
}
catch (Exception ex)
{
Label2.Text = ex.Message.ToString();
Label2.Visible = true;
}
}


Merci à tous

11 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
19 sept. 2017 à 19:24
Bonjour,

je ne connais pas l'ASP, mais C# oui.
Coté code binding, ça me paraît bien.

Si tu mets un point d'arrêt dans public void Edit(object sender, EventArgs e), est ce que ça y passe bien ou pas?
0
Merci Whismeril pour ta reponse. Lorsque je mets un point d'arret, tout passe bien mais pas de popup(au 2ème clic)
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
19 sept. 2017 à 20:49
Ok donc au deuxième passage, après le point d'arrêt, exécute en pas à pas pour voir ce qui se passe.

0
L'execution en pas à pas ne donne rien. Chaque étape se déroule sans accrocs mais le popup n'apparait pas. Je ne retrouve sur la page "modification effectuée"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
19 sept. 2017 à 21:53
Ton popup c'est mpeAddUpdatePersonnel?
0
oui. "Couplé" avec le panel ID="pnlAddUpdatePersonnelDetails"
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
19 sept. 2017 à 23:42
Une hypothèse:

tu l'affiches, et tu ne le masques pas (en tout cas je ne vois pas de code en ce sens).
Du coup, il ne se réaffiche pas car il est déjà présent.


0
Je ne comprends ce que tu veux dire par tu ne le masques pas
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
20 sept. 2017 à 06:45
Je ne vois pas de mpeAddUpdatePersonnel.Hide() ou Close().
Donc même s'il y a un bouton Annuler (d'ailleurs le nom btnCancel est utilisé 2 fois) est ce que le site ne considère pas que le message est déjà apparent?
0
Whismeril, merci bcp pour ton aide !!! C'etait mon erreur. Heureusement qu'il y a des gens altruistes comme toi. Si je peux t'etre d'une quelconque utilité ce sera avec grand plaisir !
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
20 sept. 2017 à 12:38
De rien, passe le sujet résolu avec le lien sous le titre de la discussion.
0
Rejoignez-nous