Reputation: 103
I have unique problem. Delete button within gridview not working, it doesn't hit Row commnand event. I tried in debugging but not hitting row command event at all. Why ?
<asp:GridView runat="server" ID="grdViewTrainingsCourses" AllowPaging="true" PageSize="15" OnPageIndexChanging="grdViewTrainingsCourses_PageIndexChanging" OnRowCommand="grdViewTrainingsCourses_RowCommand"
HeaderStyle-BackColor="#99CC99" DataKeyNames="pk_TrainingsCourses_ID" AutoGenerateColumns="false" CssClass="table table-condensed table-bordered table-striped table-responsive scrollable">
<Columns>
<asp:BoundField DataField="pk_TrainingsCourses_ID" HeaderText="S.No" />
<asp:BoundField DataField="PersonalInfoName" HeaderText="Employee Name" />
<asp:BoundField DataField="TrainingsCoursesCourseTitle" HeaderText="Course Title" />
<asp:BoundField DataField="TrainingsCoursesInstituteName" HeaderText="Institute Name" />
<asp:BoundField DataField="TrainingsCoursesInstituteAddress" HeaderText="Institute Address" />
<asp:BoundField DataField="TrainingsCoursesFromDate" HeaderText="From " />
<asp:BoundField DataField="TrainingsCoursesToDate" HeaderText="To" />
<asp:ButtonField CommandName="cmdEdit" HeaderText="Edit" ImageUrl="~/assets/global/images/shopping/edit.png" ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="25px" />
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~/assets/global/images/shopping/delete.png" CommandName="cmdDelete" CommandArgument='<%# Container.DataItemIndex %>' OnClientClick="return confirm('Are you Sure ?');" ControlStyle-Width="25px" ControlStyle-Height="20px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
.cs
if (e.CommandName == "cmdDelete")
{
MngTrainingsCourses.DeleteTrainingsCourses(TrainingsCoursesID);
MngAudits.InsertAuditsInfo("Data deleted from" + " " + "TrainingsCourses", MngAudits.UserMacAddress, MngAudits.UserIPAddress, UserID);
//LoadTraningsCourses();
ActivateTrainingsCourses_Tab();
int PersonalInfoID = Convert.ToInt32(Session["PersonalInfoID"]);
if (PersonalInfoID != 0)
{
LoadTrainingsCoursesByPersonalInfoID(PersonalInfoID);
}
else
{
LoadTrainingsCourses();
}
ShowMsgBox("Record Deleted Successfully");
}
please help me It has wasted a lot of my time
Upvotes: 0
Views: 614
Reputation: 157
You can use also link button instead of Image Button
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="lnkDelete" runat="server" Text="✖ Delete" CommandName="cmdDelete" CssClass="gvwdelete" ForeColor="Red" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClientClick="return confirm('Are you sure to Delete this record?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Upvotes: 1
Reputation: 103
I changed delete coloumn to this instead of template and worked
<asp:ButtonField HeaderText="Delete" ImageUrl="~/assets/global/images/shopping/delete.png" CommandName="cmdDelete" ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="20px" ItemStyle-Width="25px" />
Upvotes: 0