Как я могу передать файл / путь к файлу от одного события Button_Click к другому в C #? - PullRequest
0 голосов
/ 21 марта 2019

В моей веб-форме есть элемент управления загрузкой файлов (FileUpload1), который я использую для загрузки файла Excel.Я использую кнопку с именем btn_open, чтобы отобразить ее в виде сетки при нажатии.Я также сохраняю файл с помощью метода 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??

    }

1 Ответ

0 голосов
/ 22 марта 2019

Использование переменной Session помогло мне решить мою проблему.Надеюсь, это будет полезно другим людям, которые могут столкнуться с подобной проблемой.

На первой кнопке (в моем случае btn_open_Click) добавьте:

Session["myXlsPath"] = ExcelFilePath;

Примечание: «myXlsPath» - это простоимя, которое я создал для моей переменной Session.ExcelFilePath - это путь к моему файлу Excel, который я хочу передать другой кнопке.

На кнопке, к которой вы хотите передать путь к файлу (в моем случае btn_edit_Click), добавьте:

string ExcelFilePath = (string)Session["myXlsPath"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...