Response.End не отображает JavaScript - PullRequest
0 голосов
/ 17 ноября 2011

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

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

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

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

EDIT
В кнопке вам нужен 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 на стороне клиента, когда он невидим.

0 голосов
/ 17 ноября 2011

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

  lblInfoMessage.Visible=true;
...