您好我有一个包含大量复选框的页面,当选择一个用户然后单击该按钮转到新页面时。我需要这个新页面来获取从上一页中选择的记录的ID。
我无法弄清楚如何将名为FileID的ID的int值导入名为EditFile.aspx的下一页。
此功能的所有代码当前都在一个buttonclick事件中:
protected void btnEditSelectedFile_Click(object sender, EventArgs e)
{
int intSelectedFileCount = 0;
foreach (GridDataItem item in fileRadGrid.MasterTableView.Items)
{
int FileID = int.Parse(fileRadGrid.MasterTableView.DataKeyValues[item.DataSetIndex - (fileRadGrid.CurrentPageIndex * fileRadGrid.PageSize)]["FileID"].ToString()); //Gets File ID of Selected field
CheckBox chk = (CheckBox)item["AllNone"].Controls[0];
if (chk.Checked)
{
intSelectedFileCount++;
}
}
if (intSelectedFileCount == 1)
{
Response.Redirect("EditFile.aspx", false);
}
else
{
lblNeedSingleFile.Visible = true;
}
}
有关如何在EditFile页面中访问“FileID”的任何帮助都非常感谢!
答案 0 :(得分:3)
在asp.net中的页面之间共享数据,你有两种方法:
1)使用URL查询字符串:当您的重定向更改以下行
时Response.Redirect("EditFile.aspx?FileId=" + FileID.ToString(), false);
在EditFile.aspx中你可以在Page_Load()
中完成int FileId = int.Parse(Request.QueryString["FileId"]);
2)使用会话状态:设置会话字段ex:
Session["FileId"] = FileID;
并将其从EditFile.aspx中检索为
int FileId = (int)Session["FileId"];
答案 1 :(得分:2)
只需将您的ID作为参数传递:
Response.Redirect("EditFile.aspx?fileId=" + FileID, false);
在EditFile.aspx上,您可以通过以下方式读取fileId:
string FileID = Request.QueryString["fileId"];
当然,您需要将其转换为int
。
int fileId = (int) FileID;