проблема загрузки файла ajax-updatepanel - PullRequest
1 голос
/ 15 января 2010

У меня есть сетка в панели обновлений, которая содержит список загруженных файлов в приложение. Я хочу, чтобы при выделении строки в событии selectedIndexChanged возвращался файл для загрузки

вот код

string path = MyFiles.Rows [filesGrid.SelectedIndex] ["FilePath"]. ToString ();

        FileStream fl = null;
        try
        {
            fl = new FileStream(path, FileMode.Open);

            Response.AddHeader("Content-disposition", "attachment; filename=" + fl.Name);
            byte[] buff = new byte[fl.Length];
            fl.Read(buff, 0, buff.Length);
            Response.BinaryWrite(buff);
        }
        catch (Exception ex)
        {
            lblError.Text = "Unable to download the file";
            lblError.ForeColor = System.Drawing.Color.Red;
        }
        finally
        {
            if (fl != null)
                fl.Close();
        }

Когда я нажимаю "выбрать", я получаю ошибку JavaScript "Ошибка синтаксического анализа рядом с"% PDF-1.4% ?? 2294 0 "", и ничего не возвращается.

Кто-нибудь сталкивался с этой проблемой или кто-нибудь знает возможное решение этой проблемы?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 15 января 2010

Я нашел частичное решение здесь

http://tgynther.blogspot.com/2009/02/aspnet-updatepanel-and-responsewrite.html

однако, если у вас есть один асинхронный и один синхронизирующий триггер, он не будет работать

с одним триггером синхронизации, он отлично работает

1 голос
/ 01 марта 2012

Я знаю, это было больше года, но это может помочь кому-то еще:

Я решил свою проблему (которая, как мне кажется, может совпадать с вашей), добавив две разные кнопки, одну внутри панели обновления и одну снаружи, но скрытую. Пользователь нажимает один на панели обновления и, если все в порядке, также выполняет следующий код

ScriptManager.RegisterStartupScript(this, typeof(SpecimenTestExport), "fireExport", ClientScript.GetPostBackEventReference(this.btnSecondButton, ""), true);

, в результате чего вторая кнопка срабатывает, как только асинхронная обратная передача завершена.

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...