我正在使用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的一部分而我没有写其他部分。
答案 0 :(得分:0)
我的猜测是你在没有检查IsPostBack的情况下绑定了Page_Load中的网格。这会导致您的网格在按钮单击事件之前重新绑定,这会重置您的复选框。