用ASP.NET Web语言实现在gridview1中勾选取多个checkbox的值,存储在session中,点击button按钮,跳转到gridview2中。经过session传值到gridview2中,拿到session所存储的多个id值,根据id值显示在gridview界面中
时间: 2024-02-24 09:57:28 浏览: 181
gridview 分页保存每页的Checkbox选中的值
4星 · 用户满意度95%
好的,我来尝试回答你的问题。
首先,在ASP.NET Web中,我们可以通过GridView控件来显示和编辑数据。要实现在GridView中勾选取多个checkbox的值,可以使用如下代码:
```csharp
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chkSelect = (CheckBox)e.Row.FindControl("chkSelect");
if (chkSelect != null)
{
chkSelect.Attributes["onclick"] = string.Format("toggleRowSelection(this,{0});", e.Row.RowIndex);
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
List<string> selectedIds = new List<string>();
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
if (chkSelect != null && chkSelect.Checked)
{
string id = GridView1.DataKeys[row.RowIndex].Value.ToString();
selectedIds.Add(id);
}
}
Session["SelectedIds"] = selectedIds;
Response.Redirect("GridView2.aspx");
}
```
上述代码中,我们在GridView1的每个数据行中添加了一个CheckBox控件,然后在RowDataBound事件中为其添加了一个onclick事件,以便在勾选时记录所选行的行索引。
在按钮的点击事件中,我们遍历GridView1中的每个数据行,找到被选中的CheckBox控件,然后将其对应的ID值存储在一个List中,并将该List存储在Session中。最后,我们通过Response.Redirect方法跳转到GridView2.aspx页面。
在GridView2.aspx页面中,我们可以通过如下代码获取存储在Session中的ID值,并根据其值从数据库中获取对应的数据,然后显示在GridView2中:
```csharp
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<string> selectedIds = (List<string>)Session["SelectedIds"];
if (selectedIds != null && selectedIds.Count > 0)
{
string ids = string.Join(",", selectedIds.Select(id => "'" + id + "'"));
string sql = string.Format("SELECT * FROM MyTable WHERE ID IN ({0})", ids);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connectionString);
DataTable table = new DataTable();
adapter.Fill(table);
GridView2.DataSource = table;
GridView2.DataBind();
}
}
}
```
上述代码中,我们首先从Session中获取存储的ID值,然后将其转换为SQL语句中的IN子句,从而获取对应的数据。最后,我们将数据绑定到GridView2中显示出来。
希望以上代码对你有所帮助!
阅读全文