asp.net从gridview中删除项目

时间:2014-08-22 19:28:02

标签: asp.net sql-server gridview

我正在使用asp.net和sql server。我的asp格式中有一个gridview,它在我的表单加载中绑定。我在删除按钮上写了一个命令,但它没有效果。 这是我的代码:

ASP.net:

                            

                            <asp:TemplateField HeaderText="#" ItemStyle-CssClass="Company_Grid_Checkbox">
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkRow" runat="server" />
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:BoundField DataField="fldCountPhoto" HeaderText="تعداد عکس" />
                            <asp:BoundField DataField="fldActive" HeaderText="موقعیت نمایش" />
                            <asp:BoundField DataField="fldPrice" HeaderText="قیمت" />
                            <asp:BoundField DataField="fldYear" HeaderText="سال" />
                            <asp:BoundField DataField="fldModel" HeaderText="مدل" />
                            <asp:BoundField DataField="fldCompany" HeaderText="کمپانی" />
                            <asp:BoundField DataField="fldTbl_UserCarID" HeaderText="ID" />
                        </Columns>

C#代码:

    protected void btn_del_Click(object sender, EventArgs e)
    {
        int i = 0;
        foreach (GridViewRow row in GridView1.Rows)
        {

            if (row.RowType == DataControlRowType.DataRow)
            {
                Label1.Text = (i++).ToString();
                CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);
                if (chkRow.Checked)
                {

                    string id = row.Cells[7].Text;
                    Label1.Text = "id";

                    SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["myconectionstring"].ConnectionString);

                    string sqlStatement = "DELETE FROM tbl_Usercar WHERE fldTbl_UserCarID = @fldTbl_UserCarID";

                    try
                    {
                        connection.Open();
                        SqlCommand cmd = new SqlCommand(sqlStatement, connection);
                        cmd.Parameters.AddWithValue("@fldTbl_UserCarID", id);
                        cmd.CommandType = CommandType.Text;
                        cmd.ExecuteNonQuery();
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
            }
        }



    }

在上面的代码中,我只写了gridview的一部分而我没有写其他部分。

1 个答案:

答案 0 :(得分:0)

我的猜测是你在没有检查IsPostBack的情况下绑定了Page_Load中的网格。这会导致您的网格在按钮单击事件之前重新绑定,这会重置您的复选框。