Response.End не отображает JavaScript

При нажатии кнопки мое событие Onclick запускается. Внутри события onclick я генерирую файл во время выполнения и отображаю его в браузере следующим образом. Но перед рендерингом в браузер я делаю метку видимой. Но все же Метка никогда не станет видимой. Любая идея, в чем проблема

    lblInfoMessage.Visible=true;
    Response.ContentType = "text/plain";
    Response.AppendHeader("Content-Disposition", "attachment; filename=test.gxml");
    doc.Save(Response.OutputStream);
    Response.End();

2 ответа

Решение

Вы можете обновить страницу (и, таким образом, изменить видимость или содержимое элементов управления) или отправить вложение. Не оба. Таким образом, вам придется найти какой-то другой путь, может быть, на стороне клиента JavaScript?

РЕДАКТИРОВАТЬ
В кнопке вам нужен OnClientClick в коде на стороне сервера, это переведет на клиентский "onclick". Здесь вы можете вызвать функцию JavaScript, где вы можете (например) отобразить некоторый текст. Обратите внимание, что эта функция выполняется перед действием отправки, которое сгенерирует файл.

Примерно так в html/aspx:

<span id="infoMessage"><!-- empty --></span>
...
<asp:Button OnClientClick="showInfo()" ... />
...
<script type="text/javascript">
  function showInfo() {
    document.getElementById("infoMessage").innerText = 
        "This is the info message.";

  }
</script>

Вы не можете просто показать тот ярлык, который есть у вас сейчас, так как он не существует в html на стороне клиента, когда он невидим.

Не должно ли быть так, как показано ниже?

  lblInfoMessage.Visible=true;
Другие вопросы по тегам