2013-05-31 49 views
0

我們應用程序中的一個頁面使用GridView進行顯示 - 將其作爲表格發送。我們寧願離開邊界,所以這些代碼被壓制。看到這個代碼:ASP.NET 4在IIS7與IIS6中發出不同的HTML - 有沒有修復?

<asp:GridView CssClass="detail" AutoGenerateColumns="false" UseAccessibleHeader="true" RowStyle-CssClass="detail_data" BorderWidth="0" HeaderStyle-CssClass="detail_label" runat="server" ID="RiembursementRequestGrid"> 
    <Columns> 
     <asp:BoundField HeaderStyle-Wrap="false" HeaderText="RR Id" DataField="RR ID" /> 
     <asp:BoundField HeaderText="Official Station" DataField="Official Station" /> 
     <asp:BoundField HeaderText="Official Residence" DataField="Official Residence" /> 
     <asp:BoundField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" HeaderText="Description" DataField="Description" /> 
     <asp:BoundField HeaderText="Routing Status" DataField="Routing Status" /> 
     <asp:BoundField HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" HeaderText="Amount Requested" DataField="Amount Requested" DataFormatString="{0:c}" HtmlEncode="false" /> 
     <asp:BoundField HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" HeaderText="Taxable Amount" DataField="Taxable Amount" DataFormatString="{0:c}" HtmlEncode="false" /> 
     <asp:BoundField HeaderStyle-HorizontalAlign="Right" ItemStyle-HorizontalAlign="Right" HeaderText="Travel Advance" DataField="Travel Advance" DataFormatString="{0:c}" HtmlEncode="false" /> 
    </Columns>    
</asp:GridView> 

相關CSS類項目有:

.detail 
{ 
    border: none; 
    width: 100%; 
    font-weight: bold; 
    text-align: center; 
    font-family: "Arial"; 
    empty-cells: show; 
    border-collapse: collapse; 
} 
.detail_data 
{ 
    border: none; 
    text-align: center; 
    font-size: small; 
    font-weight: normal; 
    border-collapse: collapse; 
} 
.detail_label 
{ 
    border: none; 
    text-align: center; 
    font-size: small; 
    font-weight: bold; 
    border-collapse: collapse; 
} 

有什麼用工作站VS由服務器發出的發射之間的差異。

在我的開發工作站上,這是運行IIS7.5的Win7,邊框沒有問題。在運行IIS6的Win2003服務器上,存在邊框。這與完全相同的代碼和CSS以及瀏覽器的相同瀏覽器相同。下面是比較截圖:

Screenshot comparison

存在這樣就是BEING發出的代碼不同。下面是在工作站上運行IIS7.5表打開標籤的HTML代碼:

<table class="detail" cellspacing="0" rules="all" border="0" id="RiembursementRequestGrid" style="border-width:0px;border-collapse:collapse;"> 

並在服務器上運行的IIS6

<table class="detail" cellspacing="0" rules="all" id="RiembursementRequestGrid" style="border-width:0px;border-collapse:collapse;"> 

正如你所看到的,唯一的區別是一個標籤遺漏border =「0」。而對於那一個,邊界真的是缺失。但是我會認爲「border-width:0」會涵蓋這個特定的基礎。

請注意,除了開放表標記之外,所有其他發出的HTML(viewstate值除外)都是相同的。

的問題是:

  • 這是真正關係到IIS版本
  • 你會如何接近固定它之間的區別是什麼?
+0

你在多個瀏覽器上測試過嗎?有時我會在使用Firefox時出現奇怪的邊框行爲 – user1

+0

不幸的是,該應用程序中的其中一個控件僅適用於IE,因此我們的用戶無法使用FF或Chrome等。FWIW此應用程序僅供我們公司的員工使用,因此多瀏覽器支持在創建時被視爲不那麼重要。 – Cyberherbalist

回答

1

您是否在web.config中試過controlRenderingCompatibilityVersion設置?

如果設置爲3.5或更高,則會在table,imageimagebutton標記上省略邊界值。

詳情在這裏:http://www.asp.net/whitepapers/aspnet4/breaking-changes

+0

這是一個很好的建議!它確實看起來像是問題的答案。事實證明,我不是在我們組織中看到過這個問題的唯一開發者 - 我已經將這些信息傳遞給了其他人。我會進一步檢查它。 – Cyberherbalist

相關問題