0

我们应用程序中的页面使用 GridView 进行显示——它作为表格发出。我们更喜欢离开边界,所以这些被编码为被抑制。请参阅此代码:

<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;
}

工作站发出的声音与服务器发出的声音是有区别的。

在我的开发工作站上,即运行 IIS7.5 的 Win7 上,边框完全没有。在运行 IIS6 的 Win2003 服务器上,存在边框。这是完全相同的代码和 CSS,以及查看它的相同浏览器。下面是对比截图:

截图对比

发出的代码有所不同。这是运行 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版本之间的差异有关吗
  • 你会如何解决它?
4

1 回答 1

1

您是否尝试controlRenderingCompatibilityVersion过 web.config 中的设置?

如果设置为 3.5 或更高,则在 、 和 标签上将省略table边框imageimagebutton

详细信息在这里:http ://www.asp.net/whitepapers/aspnet4/break-changes

于 2013-06-04T15:02:41.123 回答