可以使用以下方法来解决这个问题:
在Gridview的每个复选框列中添加一个隐藏域。
在Gridview的RowDataBound事件中获取Gridview中的每个行,并使用以下代码来确定哪个复选框被选中:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//获取复选框列的隐藏域
HiddenField hf = e.Row.FindControl("HiddenField1") as HiddenField;
//获取复选框控件
CheckBox cb = e.Row.FindControl("CheckBox1") as CheckBox;
//判断复选框是否被选中
if (cb.Checked)
{
//将选中的行的行索引添加到隐藏域中
hf.Value = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
}
}
}
在Gridview中的每个删除按钮中使用以下代码来获取选中的行:
protected void btndelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
//获取复选框列的复选框控件
CheckBox cb = row.FindControl("CheckBox1") as CheckBox;
//获取复选框列的隐藏域
HiddenField hf = row.FindControl("HiddenField1") as HiddenField;
//判断复选框是否被选中
if (cb.Checked)
{
//使用隐藏域中的值来删除选中的行
int id = Convert.ToInt32(hf.Value);
//执行删除操作
}
}
}
这样,就可以解决Gridview分页复选框列不显示哪个复选框被选中的问题。