4. Теперь все готово к тестированию.
Создаем файл для загрузки и кладем его на сервер, например, в c:\temp\test.xls
Будем его скачивать.
5. Далее нам понадобится VisualStudio.
Создаем веб-контрол для веб-парт страницы. Кладем туда кнопку и в обработчике нажатия кнопки пишем код:
Код:
AxUrlMenuItem getFileUrl = new AxUrlMenuItem("DownloadFile");
getFileUrl.ExtraParams.Add("file", "c:\\temp\\test.xls");
DialogHelper.Navigate(getFileUrl, this);
В реальной ситуации этот механизм используется примерно так:
Код:
protected void WebPart_ActionMenuItemClicked(object sender, ActionMenuItemEventArgs e)
{
string fileName = string.Empty;
if (e.MenuItem.MenuItemAOTName == "WayBill")
{
fileName = (string)this.RunDatasetMethod("makeWayBill"); // вызов метода, который формирует отчет и кладет файл отчета в папку на сервере
}
if (!string.IsNullOrEmpty(fileName))
{
AxUrlMenuItem getFileUrl = new AxUrlMenuItem("DownloadFile");
getFileUrl.ExtraParams.Add("file", fileName);
DialogHelper.Navigate(getFileUrl, this);
}
}
private object RunDatasetMethod(string methodName, params object[] paramList)
{
object res = null;
try
{
if (paramList.Length > 0)
{
res = this.AxDataSource1.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call(methodName, paramList);
}
else
{
res = this.AxDataSource1.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call(methodName);
}
}
catch (System.Exception ex)
{
AxExceptionCategory exceptionCategory;
if (!AxControlExceptionHandler.TryHandleException(this, ex, out exceptionCategory))
{
// Throw the fatal exception
throw;
}
}
return res;
}
Таким образом, получаем универсальный механизм для работы с файлами в Ax 2012 EnterprisePortal.
Спасибо за внимание!