【问题标题】:Wrap header doesn't work in IE换行头在 IE 中不起作用
【发布时间】:2012-02-28 14:24:12
【问题描述】:

目前我正在用 asp.net 编程。我有一个包含 69 列和 250.000 条记录的网格视图。我在 gridview 上有分页,每页显示 15 条记录。

现在能够添加更多记录,我想包装我的标题文本。

For example: | Project Funds in USD | (should it be) --- (what I have now) | Project |
                                                                             Funds
                                                                             in USD

在我的 gridview 的 headerstyle 中,我尝试了几件事:

  1. Wrap="false";
  2. Cssclass -> white-space:nowrap;

我还注意到,当我在本地运行 Web 应用程序时,IE 会完美地“读取”它并像我想要的那样包装它。但是,当我将它发布到公司的网络服务器时,它会吓坏并为所欲为。

<div style="overflow: auto; width: auto; height: auto; margin-top: 5px; clear:both">                
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowSorting="True" 
            DataKeyNames="iol_id" CellPadding="4" ForeColor="#333333" 
            OnSorting="GridView1_Sorting">
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center"/>
            <Columns>
                <asp:BoundField DataField="Rank" HeaderText="Rank" 
                    SortExpression="Rank" ItemStyle-Wrap="false">
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="OI_IV_Status" HeaderText="OI IV Status"
                    SortExpression="OI_IV_Status" ItemStyle-Wrap="false">
                    <ItemStyle Wrap="false" />
                </asp:BoundField>
                <asp:BoundField DataField="Supplier_Code" HeaderText="Supplier Code" 
                    SortExpression="Supplier_Code" ItemStyle-Wrap="false" >
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Billing_Period" HeaderText="Billing Period" 
                    SortExpression="Billing_Period" ItemStyle-Wrap="false" >
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Invoice_Type" HeaderText="Invoice Type" 
                    SortExpression="Invoice_Type" ItemStyle-Wrap="false" >
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Invoice_Number" HeaderText="Invoice Number" 
                    SortExpression="Invoice_Number" ItemStyle-Wrap="false" >
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Bussiness" HeaderText="Bussiness" 
                    SortExpression="Bussiness" ItemStyle-Wrap="false">
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Payer_LE_Code" HeaderText="Payer LE Code" 
                    SortExpression="Payer_LE_Code" ItemStyle-Wrap="false">
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                <asp:BoundField DataField="Payer_LE_Name" HeaderText="Payer LE Name" 
                    SortExpression="Payer_LE_Name" ItemStyle-Wrap="false" >
                    <ItemStyle Wrap="False"></ItemStyle>
                </asp:BoundField>
                ...
            </Columns>
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Left" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" Wrap="false" />
        <EditRowStyle BackColor="#999999" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    </asp:GridView>
    </div>
  • 我已经删除了很多列,以使它看起来不像一堵文字墙! :) *

如果你们需要任何其他代码,尽管问我 ;)

【问题讨论】:

  • 与您公司的网络服务器相比,您本地服务器上输出的 HTML 是否不同?您还说您正在尝试包装,但您也在尝试“wrap=false”和“white-space: nowrap”。这两个看起来都可以防止包装。你能确认你要做什么吗?
  • 不,它们没有区别。我一直在将完全相同的文件从本地环境复制到网络服务器。我一直在分别尝试“wrap=false”和“white-space: nowrap;”和在一起。
  • 请不要在标题前加上“C# - ASP.NET -”等。这就是标签的用途。

标签: c# asp.net header styles


【解决方案1】:

按 F12 进入开发者工具。检查本地和 Intranet 部署中的查看模式。我有一种感觉,IE 迫使你进入 Intranet 上的兼容模式。您可以覆盖此行为,但通过在下拉列表中选择标准和兼容模式来仔细检查,看看这是否是问题所在。

编辑: 如果是您现在所说的问题,则 html 需要以下元标记:

<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

此元标记必须是标题中的第一个标记

【讨论】:

  • 抱歉,F12 没有给我任何窗口。我正在运行 Visual Studio 2008. .NET framework 3.5,如果这对你们有帮助的话:s
  • 安迪说要在 IE 中按 F12
  • 什么版本的IE?它可以在chrome或firefox中使用吗?而不是使用 IE 单击导航栏中的兼容性图标,它是一个带有撕裂的文档图标。看看是否影响网格的渲染。
  • 我有 IE 7。但是,如果我将 webtool 作为 localhost(在 IE 中)运行,则包装可以工作。 wrap 也可以在 Firefox 中正常工作。
【解决方案2】:

white-space:nowrap 是为了确保标题不换行,这与您尝试做的相反......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 2012-11-01
    • 1970-01-01
    • 2012-09-23
    • 2013-05-28
    • 1970-01-01
    • 2013-09-28
    • 2017-10-11
    相关资源
    最近更新 更多