我正在尝试使用文本框更新不同页面中的用户。但我要做的是根据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
}
}
}
答案 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"]);