2011-04-22 31 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)缺少一些庫(這應該顯示一個錯誤,儘管至少在日誌中)。

希望這可以幫助。