用ASP.NET Web语言实现在gridview1中勾选取多个checkbox的值,存储在session中,点击button按钮,跳转到gridview2中。经过session传值到gridview2中,拿到session所存储的多个id值,根据id值显示在gridview界面中
时间: 2024-02-26 09:57:30 浏览: 246
gridview 分页保存每页的Checkbox选中的值
4星 · 用户满意度95%
首先,在 ASP.NET Web 中,GridView 控件中的 CheckBox 选择项可以通过以下方式获取:
1. 在 GridView 控件的 TemplateField 中添加 CheckBox 控件,设置其 ID 和 DataKeyNames 属性:
```asp
<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckBoxHeader" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBoxItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<!-- 其他列 -->
</Columns>
</asp:GridView>
```
2. 在按钮点击事件中,遍历 GridView 中的行,获取被选中的 CheckBox 控件的值:
```csharp
protected void Button1_Click(object sender, EventArgs e)
{
List<int> selectedIds = new List<int>();
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkbox = (CheckBox)row.FindControl("CheckBoxItem");
if (chkbox != null && chkbox.Checked)
{
int id = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);
selectedIds.Add(id);
}
}
}
Session["SelectedIds"] = selectedIds;
Response.Redirect("GridView2.aspx");
}
```
3. 在 GridView2 页面中,获取 Session 中存储的选中 ID 值列表,然后根据 ID 显示数据:
```csharp
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<int> selectedIds = (List<int>)Session["SelectedIds"];
if (selectedIds != null && selectedIds.Count > 0)
{
string ids = string.Join(",", selectedIds.Select(id => id.ToString()).ToArray());
string sql = "SELECT * FROM MyTable WHERE ID IN (" + ids + ")";
// 根据 SQL 语句获取数据并绑定到 GridView2 上
// GridView2.DataSource = ...
// GridView2.DataBind();
}
}
}
```
注意:上述代码仅供参考,具体实现可能需要根据实际业务逻辑进行修改。
阅读全文