我在后面的c#代码中有一个函数,点按一下按钮就会触发。这应该将跨度更改为“DONE”,然后如果选中ZipFile复选框,则将zip文件发送给用户。
Process.Text = "DONE";
if (ZipFile.Checked)
{
Response.AppendHeader("content-disposition", "attachment; filename=" + folderName);
Response.ContentType = "application/zip";
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(Server.MapPath("PDFs")+"/"+folderName);
zip.Save(Response.OutputStream);
}
Response.End();
}
如果未选中该复选框,则显示DONE。如果选中了ZipFile复选框,它将发送zip文件,但不再更改process.text = DONE。响应似乎是覆盖ASP.NET函数返回。但由于这是我第一次使用Response,我显然做错了。
答案 0 :(得分:0)
除了在服务器端设置文本外,还要在客户端进行设置。请尝试以下代码段:
<script>
function btnProcessClicked() {
$('#<%= Process.ClientID %>').text("DONE");
return true;
}
</script>
但是,在这种方法中,请记住,如果您没有在服务器端设置文本,那么在场景(!ZipFile.Checked)中,跨度将恢复到回发后的最后一个服务器值。 / p>