我们应用程序中的页面使用 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版本之间的差异有关吗
- 你会如何解决它?