~/.pub-cache
尝试在Buttob2点击时删除多行。但是,我一直收到错误,没有找到检查"。香港专业教育学院尝试在负载中添加!postback但仍然没有运气。 我也在同一个问题上修改了其他代码,唯一的答案是添加!postback
(gridview加载数据正常,$ dart example_interleaved_execution.dart
有效)
答案 0 :(得分:0)
如果我了解您的问题,您希望一次选择多行,并在单击按钮时删除这些记录。
你能尝试这段代码吗?
这样您可以排除使用单独的行删除事件,您可能不需要保留EnableViewState
属性。
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridViewEmployee.Rows)
{
if ((row.FindControl("chkSelect") as CheckBox).Checked)
{
int recordid = Convert.ToInt32(gridview.DataKeys[row.RowIndex].Value);
using (SqlConnection con = new SqlConnection(@"Data Source=mssql; Initial Catalog=dbname; Uid=sa; pwd=sa;"))
{
con.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM `[table]` WHERE ID=" + recordid, con);
cmd.ExecuteNonQuery();
con.Close();
}
}
}
BindGrid();
}
我希望这有助于或提供一些见解。
<强>更新强>
List<int> list = new List<int>();
if (ViewState["SelectedRecords"] != null)
{
list = (List<int>)ViewState["SelectedRecords"];
}
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chkSelect");
var selectedKey =
int.Parse(GridView1.DataKeys[row.RowIndex].Value.ToString());
if (chk.Checked)
{
if (!list.Contains(selectedKey))
{
list.Add(selectedKey);
}
}
else
{
if (list.Contains(selectedKey))
{
list.Remove(selectedKey);
}
}
}
ViewState["SelectedRecords"] = list;
//BindGrid();
}