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