2011-04-22 28 views
0
<form action="" method="post" id="SaveIndicationsExportForm"> 
    <table cellspacing="0" cellpadding="0" id="hover" style="float: left;"> 
     <tbody> 
      <tr> 
       <td class="hoverButtonLeft off"> 
       </td> 
       <td class="hoverButtonMid off"> 
        <div onclick="resultsGridExportToExcel()" buttonize="true" buttonized="true"> 
         <img src="/Extranet/img/buttons/excel_icon.gif"> Export To Excel 
        </div> 
       </td> 
       <td class="hoverButtonRight off"> 
       </td> 
       <td class="hoverButtonSpace off"> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</form> 

这就是我在页面上的表单。基本上,这只是一个伪表单,我可以用它来触发JQGrid元素页面上的导出操作。这里是onClick方法形式依赖于:JQGrid导出为ex​​cel在本地工作,但从未在集成环境中

function resultsGridExportToExcel() 
{ 
    var exportUrl = '/extranet/mvc/Indications.cfc/SavedIndicationsExportToExcel?id=3'; 
    var postData = jQuery('#resultsGrid').jqGrid('getGridParam', 'postData'); 
    $.each(postData, function(key, value) 
    { 
     exportUrl += '&'+key+'='+encodeURIComponent(value); 
    }); 
    $('#SaveIndicationsExportForm').attr('action', exportUrl).submit(); 
} 

这里是#resultsGrid的函数使用。它把使用的视图嵌入式C#代码页的顶部:

<% 
    var grid = Chatham.Web.Models.Indications.SavedIndication.GetGrid("#resultsGrid", Url.Action("SavedIndications", "Indications"), "columnChooser", 500, 800); 
%> 

而且getGrid看起来像这样:

public static JqGridDefinition GetGrid(string tableId, string actionUrl, string pageUrl, int height, int width) 
{ 

      var gridDefinition = new JqGrid.JqGridDefinition(
       tableId, 
       actionUrl, 
       pageUrl); 
      gridDefinition.RowList = new List<int>() { 25, 50, 100, 500 }; 

      gridDefinition.AlwaysShowSortingButtons = true; 
      gridDefinition.Grouping = true; 
      gridDefinition.GroupingColumn = "CreatedBy"; 
      gridDefinition.ShowGroupColumn = true; 
      gridDefinition.GroupingTitle = string.Format("['<b>{0}0{1}</b>']", "{", "}"); 
      gridDefinition.SetExportToExcel(
       "SaveIndicationsExportForm", 
       System.Web.VirtualPathUtility.ToAbsolute("~/mvc/Indications.cfc/SavedIndicationsExportToExcel?id=3")); 
      gridDefinition.ShowAdvancedSearch = true; 
      gridDefinition.Height = height; 
      gridDefinition.Width = width; 
      gridDefinition.Multiselect = false; 
      gridDefinition.AlwaysShowSortingButtons = true; 
      gridDefinition.SearchToolbar = false; 
      gridDefinition.NoResultsMessage = "No Saved Indications Found"; 

      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Nickname", "NickName", true, true, 80, false)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Created By", "CreatedBy", true, true, 80, false, true)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Notional", "Notional", true, true, 80, false, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Effective Date", "EffectiveDate", true, true, 95, true, true, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Maturity Date", "MaturityDate", true, true, 95, true, true, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Term (YR)", "Term", true, true, 50, false, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Amort. Term Yr", "AmortTermMonths", true, true, 95, true, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Product", "Product", true, true, 50, false, true)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Rate/Price", "KeyRate", true, true, 95, true, FilterHelper.DateNumberSearchOptions)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("PV01", "PV01", true, true, 95, true, FilterHelper.DateNumberSearchOptions)); 

      var calculateDate = new JqGrid.JqGridColumnDefinition("Calculate Date", "RateTimeStamp", true, true, 95, false, FilterHelper.DateNumberSearchOptions); 
      calculateDate.CustomFormatterDelegate = new CustomFormatter(DateTimeFormatting); 
      gridDefinition.AddColumn(calculateDate); 

      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Group", "Project", true, true, 95, true, true)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Option Strike", "CapStike", true, true, 95, true)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Trade Type", "Permission", true, true, 95, true)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Profit", "Profit", true, true, 95, false)); 
      gridDefinition.AddColumn(new JqGrid.JqGridColumnDefinition("Actions", "actions", true, true, 95, false)); 


      return gridDefinition; 
} 

这真的我此刻得到。如果您需要查看其他内容,请告诉我。但是我可以在本地环境中正常导出,然后只要我尝试集成它就无法工作,只是将我带到一个空白页面,IE说它在诊断问题时遇到了问题,并将我带到一个通用错误页面。

谢谢你们。

回答

1

尝试访问本地计算机上本地环境的url /extranet/mvc/Indications.cfc/SavedIndicationsExportToExcel?id=3,然后看看会发生什么,然后访问集成上的同一网址,看看是否有相同的结果(您可能需要在url中添加一些参数)。如果这将在本地工作,并不会在整合它不是一个JavaScript错误。确保集成具有相同的url模式,例如它可以缺少/extranet/部分,或者它可能需要一些其他参数(如会话或导出到Excel)缺少一些库(这应该显示一个错误,尽管至少在日志中)。

希望这可以帮助。