[英]How can I pass a file/file path from one Button_Click event to another in C#?
我的webform中有一个fileupload控件(FileUpload1),用于加载excel文件。 我使用一个名为btn_open的按钮在点击时在gridview中显示它。 我还使用服务器文件夹中的FileUpload1.SaveAs()方法保存文件。
现在我有另一个名为btn_edit的按钮,点击它需要使用我刚刚加载的同一个文件来执行另一组操作。
如何将此文件/文件路径从btn_open_Click传递到btn_edit_Click? 我不想在代码上指定确切的位置。 我将多次打开新的excel文件,因此我不想为每个新文件指定服务器的文件路径。这需要以编程方式进行。 此外,我想避免使用Interop,如果可能的话。
以下代码段可能会更清楚地说明我想要做什么。
protected void btn_open_Click(object sender, EventArgs e)
{
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExtension.ToLower() == ".xlsx" || fileExtension.ToLower() == ".xls")
{
string path = Path.GetFileName(FileUpload1.FileName); //capture the file name of the file I have uploaded
path = path.Replace(" ", ""); // if there is any spacing between the file name it will remove it
FileUpload1.SaveAs(Server.MapPath("~/ExcelFile/") + path); //saves to Server folder called ExcelFile
String ExcelPath = Server.MapPath("~/ExcelFile/") + path; // Returns the physical file path that corresponds to the specified virtual path.
.
.
*code to display it in gridview*
.
.
}
else
{
Console.Writeline("File type not permissible");
}
}
protected void btn_edit_Click(object sender, EventArgs e)
{
//HOW DO I PASS THE ABOVE FILE HERE PROGRAMATICALLY WITHOUT SPECIFYING IT'S EXACT LOCATION ON THE SERVER??
}
使用Session变量帮助我解决了我的问题。 希望它对其他可能遇到类似问题的人有所帮助。
在第一个按钮(在我的情况下是btn_open_Click)中,添加:
Session["myXlsPath"] = ExcelFilePath;
注意:“myXlsPath”只是我为Session变量创建的名称。 ExcelFilePath是我想要传递给另一个按钮的excel文件的路径。
在您要传递文件路径的按钮上(在我的情况下为btn_edit_Click),添加:
string ExcelFilePath = (string)Session["myXlsPath"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.