ASP.NET Gridview supprimer la ligne uniquement sur confirmation
J'ai un gridview
avec le onRowDeleting
méthode mise en œuvre. Je voudrais demander à l'utilisateur avec un message pop up afin de confirmer s'il souhaite supprimer cet élément ou non.
Si l'utilisateur clique sur "OK", "Confirmer" ou quelque chose de similaire alors je voudrais le onRowsDeleting
à être des processus et de l'enregistrement supprimé. Mais si l'utilisateur a appuyé sur "Non" ensuite, je voudrais que la méthode annulée et le dossier n'est pas supprimé.
Comment cela peut-il être fait?
Voici mon gridview
et onRowDeleting
méthode dans le code derrière.
<asp:GridView runat="server" ID="gvShowQuestionnaires" HeaderStyle-CssClass="table_header" CssClass="view" AlternatingRowStyle-CssClass="alt" AlternatingRowStyle-BackColor="#f3f4f8" AutoGenerateColumns="False"
DataKeyNames='QuestionnaireID' OnRowDeleting="gvShowQuestionnaires_RowDeleting" OnRowEditing="gvShowQuestionnaires_RowEdit" OnSelectedIndexChanged="gvShowQuestionnaires_SelectedIndexChanged" FooterStyle-CssClass="view_table_footer" >
<Columns>
<asp:BoundField DataField="QuestionnaireID" HeaderText="ID" HeaderStyle-Width="80px" ItemStyle-CssClass="bo"></asp:BoundField>
<asp:BoundField DataField="QuestionnaireName" HeaderText="Questionnaire Name" />
<asp:ButtonField CommandName="select" ButtonType="Link" Text="view results" />
<asp:CommandField HeaderText="Options" CausesValidation="true" ShowDeleteButton="True" ShowEditButton="true" EditText="Edit">
</asp:CommandField>
</Columns>
</asp:GridView>
protected void gvShowQuestionnaires_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int questionnaireID = (int)gvShowQuestionnaires.DataKeys[Convert.ToInt32(e.RowIndex)].Value;
GetData.DeleteQuestionnaire(questionnaireID);
gvShowQuestionnaires.DataSource = DT;
gvShowQuestionnaires.DataBind();
lblActivity.Visible = true;
lblActivity.Text = "Your questionnaire has been deleted";
}
Cela peut vous aider msdn.microsoft.com/en-us/library/bb428868.aspx
OriginalL'auteur HGomez | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Vous devriez le faire sur le côté client avec javascript.
Par conséquent vous pouvez gérer GridView est RowDataBound événement à ajouter à la Suppression du Bouton de
OnClientClick
:http://msdn.microsoft.com/en-us/library/bb428868.aspx
Ce js-fonction retournera si l'utilisateur a cliqué
ok
oucancel
. Si un js-gestionnaire renvoiefalse
, la page ne sera pas de publication sur le serveur.OriginalL'auteur Rango
Le "return confirm(..") Javascript est sur la bonne voie.
Le problème est que ASP.NET ajouter js pour appeler __doPostBack
de sorte que vous obtiendrez quelque chose comme ceci dans votre code HTML du bouton supprimer:
Ce qui se passe est:
1) l'Utilisateur clique sur le bouton Supprimer.
2) Confirmer la boîte de dialogue affichée.
3) l'Utilisateur clique sur le bouton OK.
4) Confirmer renvoie la valeur True.
5) retour au début de l'exécution d'une instruction et __ _ _ doPostBack n'est pas appelé.
La solution est de retour seulement si confirmer retourne false:
Si l'utilisateur clique sur OK confirmer renvoie True, puis __doPostBack exécute.
excellente solution.
OriginalL'auteur CoolBreeze
Simplement appeler une fonction JavaScript booléen par "retour" de l'appelant si renvoie la valeur false ce lien bouton ne fonctionne pas.
ASPX
Javascript
Côté Serveur
OriginalL'auteur Bishoy Hanna
D'une autre manière:
OriginalL'auteur Bat_Programmer
OriginalL'auteur Md. Musa Prodhan