简体   繁体   中英

Why my Delete button in gridview not hitting RowCommand?

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

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>

我将delete coloumn更改为此模板而不是模板并工作

<asp:ButtonField HeaderText="Delete" ImageUrl="~/assets/global/images/shopping/delete.png" CommandName="cmdDelete" ButtonType="Image" ControlStyle-Width="25px" ControlStyle-Height="20px" ItemStyle-Width="25px" />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM