单击按钮时将 int 传递到不同的页面

Pass a int through to different page on button click

您好,我有一个包含大量复选框的页面,选中一个复选框后,用户单击按钮转到新页面。我需要这个新页面来包含从上一页中选择的记录的 ID。

我不知道如何将名为 FileID 的 ID 的 int 值获取到名为 EditFile.aspx 的下一个页面中。

这个函数的所有代码目前都在按钮点击事件中:

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' 的帮助将不胜感激!

只需将您的 ID 作为参数传递,例如:

Response.Redirect("EditFile.aspx?fileId=" + FileID, false);

在 EditFile.aspx 您可以通过以下方式读取 fileId:

string FileID = Request.QueryString["fileId"];

当然,您需要将其转换为 int

int fileId = (int) FileID;

要在 asp.net 中的页面之间共享数据,您有 2 种方法:

1) 使用 URL 查询字符串:当您的重定向更改下面的行时

Response.Redirect("EditFile.aspx?FileId=" + FileID.ToString(), false); 

在 EditFile.aspx 中你可以在 Page_Load()

中做
int FileId = int.Parse(Request.QueryString["FileId"]);

2) 使用会话状态:设置会话字段例如:

Session["FileId"] = FileID;

并从 EditFile.aspx 中检索为

int FileId = (int)Session["FileId"];