ASP.NET Web的gridview的checkbox多选框如何根据id通过button实现跨页传值
时间: 2024-02-20 14:58:18 浏览: 133
要实现跨页传值,需要在GridView控件中为每一个CheckBox控件添加一个CommandArgument属性,该属性值可以为当前行的主键ID或其他需要传递的值。
然后,在GridView控件外部添加一个Button控件,通过该Button控件触发事件来获取选中的CheckBox控件的值。在Button控件的Click事件中,可以使用类似以下的代码来获取选中的CheckBox控件的值:
```
protected void btnSubmit_Click(object sender, EventArgs e)
{
List<string> ids = new List<string>();
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("CheckBox1");
if (cb.Checked)
{
string id = GridView1.DataKeys[row.RowIndex].Value.ToString();
ids.Add(id);
}
}
// 将选中的ID列表保存到Session中,以便在跨页时使用
Session["SelectedIds"] = ids;
}
```
上述代码中,我们首先遍历GridView控件中的每一行,查找每一行中的CheckBox控件,如果该CheckBox控件被选中,则获取该行的主键ID,并将其添加到一个List<string>集合中。最后,我们将选中的ID列表保存到Session中,以便在跨页时使用。
在另一个页面中,我们可以通过以下的代码来获取保存在Session中的选中的ID列表:
```
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 获取保存在Session中的选中的ID列表
List<string> ids = (List<string>)Session["SelectedIds"];
if (ids != null && ids.Count > 0)
{
// 根据选中的ID列表查询数据
// ...
}
}
}
```
上述代码中,我们在页面加载时,首先获取保存在Session中的选中的ID列表,如果该列表不为空,则根据选中的ID列表查询数据。
阅读全文