Есть несколько вариантов. Поскольку эти методы обработчики событий и непосредственно не вызываются, лучший подход здесь, скорее всего, чтобы сделать переменные член класса уровня:
private string strHeaderFileName;
protected void multiFileUpload_FileUploaded(object sender, FileUploadedEventArgs e)
{
strHeaderFileName = e.File.FileName;
// etc.
}
protected void btnSave_Click(object sender, EventArgs e)
{
// here you can access strHeaderFileName
}
В качестве членов класса уровня, они будут доступны любого метода в этом классе. (Убедитесь, что вы держите их private
или другие объекты также смогут получить к ним доступ, что вам, вероятно, не нужно в этом случае.) И они будут существовать для жизни любого данного экземпляра этого класса.
Также обратите внимание на, что это выглядит как ASP.NET, который ведет себя по-другому в терминах экземпляров класса, чем такие, как WinForms. Любой данный экземпляр Page
не сохраняется между запросами. Поэтому, если вы установите значение в одном обработчике, снова отобразите страницу, а затем вызовите другой обработчик, значение больше не будет там. Это связано с тем, что экземпляр класса для каждого Page
создается для каждого запроса и затем уничтожается после ответа.
Для того, чтобы сохранять запросы страниц, вам нужно сохранить значение где-то в другом месте. Например, если это необходимо, чтобы жить в течение рамки одного сеанса пользователя, то вы можете поместить его в состоянии сеанса:
protected void multiFileUpload_FileUploaded(object sender, FileUploadedEventArgs e)
{
Session["strHeaderFileName"] = e.File.FileName;
// etc.
}
protected void btnSave_Click(object sender, EventArgs e)
{
// here you can access Session["strHeaderFileName"]
}
В зависимости от сферы, в которой значение должно сохраняться, вы также можете поместить его на страницы, в файле cookie, в базе данных, в некотором кэширующем механизме и т. д.
Вы пробовали его определение _outside_ ваших методов, на уровне класса? –
Читайте об [полях] (http://msdn.microsoft.com/en-US/library/ms173118 (v = vs.80) .aspx) – Vache
@GrantWinney Обычно я помещал их в начало класса, но didn Не хотите прокручивать 1000 строк кода, чтобы разместить их там. lol надеялся, что есть другой способ. – JoJo