网格视图复选框在新页面上更新用户

本文关键字:更新 用户 新页面 视图 复选框 网格 | 更新日期: 2023-09-27 18:25:20

我正在尝试用文本框更新另一个页面中的用户。但我想做的是基于Gridview来选择用户。

因此,在第一页上,您会看到一个带有用户列表和复选框的网格视图。您可以使用复选框选择一个用户,然后点击编辑用户按钮。然后它转到一个新页面,允许您在文本框中编辑用户,但由于ID或其他唯一列而填充数据。我该怎么做??

这是我迄今为止的代码:

protected void Button2_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvrow in GridView1.Rows)
    {
        CheckBox CheckBox1 = (CheckBox)gvrow.FindControl("chkSelect");
        if (CheckBox1.Checked)
        {
            //Go to new page to edit user
        }
        else
        {
            //Do nothing if not checked
        }
    }
}

网格视图复选框在新页面上更新用户

我假设您的复选框在<asp:TemplateField>中。

因此,在<asp:TemplateField>中,您可以添加一个<asp:HiddenField />来存储用户的ID。然后可以通过获取<asp:HiddenField /> 的值来获取ID

ASPX标记:

<asp:TemplateField>
    <ItemTemplate>
        <asp:CheckBox ID="chkSelect" runat="server" />
        <asp:HiddenField ID="hfdUserID" runat="server" Value='<%#Eval("id") %>' />
    </ItemTemplate>
</asp:TemplateField>

代码隐藏

protected void Button2_Click(object sender, EventArgs e)
{
    int userid = 0;
    foreach (GridViewRow gvrow in GridView1.Rows)
    {
        CheckBox CheckBox1 = (CheckBox)gvrow.FindControl("chkSelect");
        if (CheckBox1.Checked)
        {
            userid = Convert.ToInt32(((HiddenField)gvrow.FindControl("hfdUserID")).Value);
            Response.Redirect("useredit.aspx?id=" + userid.ToString());
        }
    }
}

编辑:要让用户ID进入新页面,您可以使用以下内容,然后相应地使用

int userid = Convert.ToInt32(Request.QueryString["id"]);