Gridview Checkbox在新页面上更新用户

时间:2014-10-01 22:06:32

标签: c# asp.net webforms

我正在尝试使用文本框更新不同页面中的用户。但我要做的是根据Gridview选择用户。

所以在第一页上你会看到一个带有用户列表和复选框的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
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您的复选框位于<asp:TemplateField>内。

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

的值来获取<asp:HiddenField />

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"]);