我們的ASP.NET Web應用程序(使用Telerik RadGrid 2.0.2.0)需要針對Windows 7兼容性進行更新。問題是導出Excel文件的現有功能不會生成與Office 2007兼容的Excel文件,這是我們新的Windows 7常用應用程序集的一部分。運行時錯誤:VersionOne.dll和VersionTwo.dll中都存在類型X
問題是這行代碼:
ExportXLS.Telerik.WebControls.RadGrid RadGrid1 = new
ExportXLS.Telerik.WebControls.RadGrid();
RadGrid1.MasterTableView.ExportToExcel(TableName, true, false);
我們發現,還有另外一個DLL,RadGrid.Net2版本4.5.0.0,其中包括一個「ExportToExcel2007」的方法,是不是在2.0中可用dll的版本。這種方法確實產生可以用Excel打開一個有效的Excel文件2007
Telerik.WebControls.RadGrid RadGrid1 = new Telerik.WebControls.RadGrid();
RadGrid1.MasterTableView.ExportToExcel2007(TableName, true, false);
的問題是,似乎是兩個DLL並切換到使用新的DLL似乎並不輕鬆之間激烈的區別。我們的預期解決方案是在應用程序中引用這兩個DLL,但僅在創建2007兼容Excel文件時遇到問題的屏幕中使用較新的一個。
使用下面的文章爲指導,
http://blogs.msdn.com/b/ansonh/archive/2006/09/28/extern-alias-walkthrough.aspx
我們做了如下的微小變化:
添加在web項目 「RadGrid.Net2.dll」 的引用並將此參考的別名屬性調整爲「導出XLS」
將此添加到ExportExcel.aspx.cs代碼隱藏頁的頂部:
extern alias ExportXLS;
ExportXLS .Telerik.WebControls.RadGrid RadGrid1 =新ExportXLS .Telerik:
然後,使用新的DLL通過參照radgrid.net2.dll的合格參考實例化的radgrid控件。 WebControls.RadGrid();
修改了ExportToExcel方法使用2007對應方法:
RadGrid1.MasterTableView。 ExportToExcel2007(TableName,true,false);
這解決了問題與ExportExcel.aspx頁面和屏幕現可生產Excel 2007中兼容Excel電子表格,但是,我們感到驚訝的是這一變化打破了在使用radgrid控件的應用程序的其他頁面。這是錯誤:
c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7ff38b9a\2680aee3\App_Web_systemmapsearch.ascx.a97e7c59.tlmhafnf.0.cs(251): error CS0433:
The type 'Telerik.WebControls.GridRowIndicatorColumn'
exists in both
'c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\root\7ff38b9a\2680aee3\assembly\dl3\cd8ec314\002177c0_d2e8cb01\RadGrid.DLL'
and
'c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7ff38b9a\2680aee3\assembly\dl3\428a2b2d\002177c0_d2e8cb01\RadGrid.Net2.DLL'
我的期望是,其他網頁將繼續使用舊的不合格版本2.0.2.0的RadGrid.dll,並會繼續工作,但這種情況並非如此。
下面是一些來自用戶控件的代碼後面的代碼,SystemMapSearch.ascx,即加載失敗:
<%@ Register TagPrefix="radG" Namespace="Telerik.WebControls" Assembly="RadGrid" %>
<radg:radgrid id="RadGrid1" cssclass="RadGrid" runat="server" allowpaging="True" allowsorting="True" gridlines="none"
pagesize="20" width="100%" borderwidth="0" AutoGenerateColumns="False">
我試圖改變namespace指令包括全局命名空間,但這導致一個無效的參考:
<%@ Register TagPrefix="radG" Namespace="global::Telerik.WebControls" Assembly="RadGrid" %>
爲什麼改變ExportExcel.aspx頁面攻破對方的網頁和我有什麼做的,解決這個問題?
我在看到您的帖子之前發現了我的問題,但您的詳細回答看起來不錯。謝謝。 – ChadD