在SharePoint中,当在页面上点击Export to Excel按钮后,第一次它能实现该功能,当再次点击该按钮时,页面上的所有按钮将失效,仅仅再次刷新该页面时按钮才会有效,首先想到出现该问题肯定是在导出之后没有刷新该页面才会导致。
为了解决该问题,首先需要知道是什么原因导致,其实它是Moss的一个机制:在form 提交前,设置一个全局变量标识,防止重复提交,但是导出excel后的输出为二进制流,没有刷新页面,所以标识没有被重置,其他提交就被禁止了。
解决方案:
在查询按钮提交前设置:_spSuppressFormOnSubmitWrapper = true;
需要添加以下JS脚本,这里有2种方式,仅仅添加其中一种就能实现:
Script1:
<script type="text/javascript" language="javascript"> //sharepoint postback to work after clicking on telerik export to pdf if (typeof (_spBodyOnLoadFunctionNames) != 'undefined' && _spBodyOnLoadFunctionNames != null) { _spBodyOnLoadFunctionNames.push("supressSubmitWraper"); } function supressSubmitWraper() { _spSuppressFormOnSubmitWrapper = true; } </script>
Script2:
<script type="text/javascript"> $('input[id*=ExportToExcelButton]').click(function () { window.WebForm_OnSubmit = function () { return true; } }); </script>