0

我试图将页面的内容转换为 Excel 格式,问题是当我重定向页面时我没有得到我的请求变量,所以我找到了一个解决方案,我们应该为每个请求变量定义一个隐藏变量,然后定义Get 调用后的值。这是现在使用的代码:

<script language="Javascript">
   function exportToExcel()
   {
     document.frm.hndExcel.value = "true";
     document.frm.submit();
   }
</script>


<form name="frm" method="get" action="LibGetStatistics.asp" ID="Form1">
 <% if Request.QueryString("hndExcel") = "true" then
    Response.ContentType = "application/vnd.ms-excel"
 end if%>

 <%= GetStatistics() %>
  <input type="hidden" name="hndExcel" value="false" ID="Hidden1">
  *<input type="hidden" name="ShowOverDueBooks" value="
         <%=Request.QueryString "ShowOverDueBooks")%>" ID="Hidden2">
  <input type="hidden" name="StartDate" value="
         <%=Request.QueryString("StartDate")%>" ID="Hidden3">
  <input type="hidden" name="EndDate" value="
         <%=Request.QueryString("EndDate")%>" ID="Hidden4">*

 <a href="JavaScript:exportToExcel();"><img src='vimages/excel.gif' border=0></a>
</form>

问题是当我想以其他形式使用此代码时,我需要为每个请求变量声明一个隐藏变量。有没有其他方法可以概括此代码,所以当我们发回页面时,我们会保留相同的请求。

谢谢。

4

1 回答 1

0

同样,经过一些尝试,我找到了一个不使用隐藏变量的通用解决方案,我们只需使用 Request.QueryString 属性:

<script language="Javascript">
function exportToExcel()
{
    document.frm.hndExcel.value = "true";
    document.frm.action='LibGetStatistics.asp?' + '<%=Request.QueryString%>';
    document.frm.submit();
}
</script>


<form name="frm" method="post"  ID="Form1">
    <input type="hidden" name="hndExcel" value="false" ID="Hidden1">
    <% if Request.Form("hndExcel") = "true" then
        Response.ContentType = "application/vnd.ms-excel"
    end if%>

    <%= GetStatistics() %>
          <a href="JavaScript:exportToExcel();">
              <img src='vimages/excel.gif' border=0></a>
</form>

我希望这能帮助那些将面临这个问题的人。

于 2009-04-07T09:29:31.297 回答