1

进行更改后,我无法刷新更新面板中的 Gridview。有人可以帮忙吗?我在 GridView 中使用 rowCommand 删除行。我正在使用 ToolkitScriptManager 控件和 UpdatePanel。

  <asp:UpdatePanel runat="server" ID="upt1">
    <ContentTemplate>
        <asp:GridView ID="gwSubG1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" Width="600px" OnSelectedIndexChanged="gwSubG1_SelectedIndexChanged" DataKeyNames="One_Grop_Id" OnRowCommand="gwSubG1_RowCommand" OnRowDeleting="gwSubG1_RowDeleting">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:BoundField DataField="Grop_Name" HeaderText="Group One" ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="HeaderCenter">
                    <HeaderStyle CssClass="HeaderCenter" />
                    <ItemStyle HorizontalAlign="Center" />
                </asp:BoundField>
                <asp:BoundField DataField="ORG_Grp_Nam" HeaderText="Main Group" ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="HeaderCenter">
                    <HeaderStyle CssClass="HeaderCenter" />
                    <ItemStyle HorizontalAlign="Center" />
                </asp:BoundField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:ImageButton ID="btnDelete" ImageUrl="~/Theme/Icon/info.png" CausesValidation="false" runat="server" CommandArgument='<%# Eval("One_Grop_Id") %>' CommandName="Delete" AlternateText="Delete" OnClientClick="return confirm('are you sure?');" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

    </ContentTemplate>
</asp:UpdatePanel>

我的代码:

        protected void gwSubG1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.ToString() == "Delete")
        {
            DB.strQuery = "DELETE FROM [Sub_Grop_One] WHERE One_Grop_Id=@id";
            DB.cmd = new SqlCommand(DB.strQuery, DB.MyConnection);
            DB.cmd.Parameters.AddWithValue("id", e.CommandArgument.ToString());
            DB.MyConnection.Open();
            DB.cmd.ExecuteNonQuery();
            DB.MyConnection.Close();

            FillGW();

            this.gwSubG1.DataBind();

            upt1.Update();

        }
    }
4

1 回答 1

4

命令名称“Delete”被数据绑定控件识别并引发多个可能妨碍您的事件。https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.buttonfield.commandname%28v=vs.110%29.aspx

由于您直接在 gridview 命令处理程序上处理删除,我会尝试提供不同的命令名称,如 DeleteRow

于 2015-02-10T23:55:17.680 回答