Bonton edit de mon gridview ne fonctionne qu'une seule fois [Résolu]

vitruve - 19 sept. 2017 à 16:58 - Dernière réponse : Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention
- 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
Afficher la suite 

11 réponses

Répondre au sujet
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 19 sept. 2017 à 19:24
0
Utile
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?
Commenter la réponse de Whismeril
0
Utile
Merci Whismeril pour ta reponse. Lorsque je mets un point d'arret, tout passe bien mais pas de popup(au 2ème clic)
Commenter la réponse de vitruve
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 19 sept. 2017 à 20:49
0
Utile
Ok donc au deuxième passage, après le point d'arrêt, exécute en pas à pas pour voir ce qui se passe.

Commenter la réponse de Whismeril
0
Utile
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"
Commenter la réponse de vitruve
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 19 sept. 2017 à 21:53
0
Utile
Ton popup c'est mpeAddUpdatePersonnel?
Commenter la réponse de Whismeril
0
Utile
oui. "Couplé" avec le panel ID="pnlAddUpdatePersonnelDetails"
Commenter la réponse de vitruve
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 19 sept. 2017 à 23:42
0
Utile
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.


Commenter la réponse de Whismeril
0
Utile
Je ne comprends ce que tu veux dire par tu ne le masques pas
Commenter la réponse de vitruve
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 20 sept. 2017 à 06:45
0
Utile
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?
Commenter la réponse de Whismeril
0
Utile
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 !
Commenter la réponse de vitruve
Whismeril 10514 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 20 sept. 2017 à 12:38
0
Utile
De rien, passe le sujet résolu avec le lien sous le titre de la discussion.
Commenter la réponse de Whismeril

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.