回发上的asp.NET CSS问题

时间:2013-09-04 13:42:34

标签: asp.net css internet-explorer webforms

我们目前正在开发一个asp.NET 4.0 Web窗体应用程序。在特定的屏幕中,我们尝试创建具有固定页眉和页脚的网格视图。我们按照我们想要的方式工作,但后来我们意识到当我们点击一​​个发布部分回发的按钮时(例如触发所需的字段验证器),固定的标题会消失。

为什么会发生这种情况?

代码如下:

CSS(相关部分):

.tableStyle
{
}

.tableStyle th
{
    text-align: left !important;
    padding: 2px 5px !important;
    font-weight: bold;
}

.tableStyle td
{
    padding: 1px 5px !important;
    text-align: left;
}

.container
{
    overflow-y: scroll;
    overflow-x: hidden;
    height: 500px; 
}

.container table tbody
{
    overflow-x: hidden;
}

/* Creates a Scrollable Div */
.GridViewContainer
{
    overflow: auto;
}

.freezeHeader
{
    position: absolute;
    background-color: White;
    font-weight: bold;
    margin-top: -40px;
    padding-bottom: 5px;
    z-index: 99;
}

.freezeFooter
{
    position: absolute;
    background-color: White;
    top: 530px;
    padding-bottom: 20px;
    z-index: 95;
}

.paddingTop
{
    margin-top: 40px;
}

ASPX页面(网格视图部分):

<fieldset>
<legend>Products Mapping Table (EXT_CFG_PDT_MAP)</legend>
<div id="grdWithScroll" class="container">
    <asp:GridView 
        ID="ProductsMappingTableGridView"  
        AutoGenerateColumns="false" 
        runat="server"
        OnRowCancelingEdit="ProductsMappingTableGridView_RowCancelingEdit" 
        OnRowEditing="ProductsMappingTableGridView_RowEditing"
        OnRowUpdating="ProductsMappingTableGridView_RowUpdating" 
        ShowFooter="true" 
        OnRowCommand="ProductsMappingTableGridView_RowCommand" 
        CssClass="tableStyle paddingTop"
        HeaderStyle-CssClass="freezeHeader"
        FooterStyle-CssClass="freezeFooter">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="editButton" Text="Edit" CausesValidation="false" CommandName="Edit" runat="server" Enabled='<%# Session["ProductsMappingsWriteAccess"]  %>'/>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:Button ID="updateButton" Text="Update" CommandName="Update" runat="server" ValidationGroup="Edit"/>
                    <asp:Button ID="cancelButton" Text="Cancel" CausesValidation="false" CommandName="Cancel" runat="server" />
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:Button ID="insertButton" Text="Insert" CommandName="Insert" runat="server" ValidationGroup="Insert" Enabled='<%# Session["ProductsMappingsWriteAccess"]  %>'/>
                </FooterTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>Product Mapping ID</HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="mptIdLabel" runat="server" Text='<%# Eval("MPT_ID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>Source Key</HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="srcKeyLabel" runat="server" Text='<%# Eval("SRC_KEY") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                <asp:DropDownList AutoPostBack="false" ID="srcKeyListEdit" runat="server" Width="95px" OnLoad="SrcKeyListInitalization" >
                        </asp:DropDownList>
                </EditItemTemplate>
                <FooterTemplate>
                <asp:DropDownList AutoPostBack="false" ID="srcKeyListInsert" runat="server" Width="95px" OnLoad="SrcKeyListInitalization" 
                    Visible='<%# Session["ProductsMappingsWriteAccess"]  %>'>
                        </asp:DropDownList>
                </FooterTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <HeaderTemplate>Product Key - Source</HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="pdtKeySrcLabel" runat="server" Text='<%# Eval("PDT_KEY_SRC") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="pdtKeySrcTextBoxEdit" runat="server" Text='<%# Eval("PDT_SRC") %>'
                        MaxLength="32"></asp:TextBox>
                        <br />
                    <asp:RequiredFieldValidator runat="server" ID="pdtKeySrcTextBoxEditRequiredFieldValidator"
                        ControlToValidate="pdtKeySrcTextBoxEdit" ValidationGroup="Edit" ForeColor="Red"
                        ErrorMessage="PDT_KEY_SRC is required"></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <FooterTemplate>
                    <asp:TextBox ID="pdtKeySrcTextBoxInsert" runat="server" Text='<%# Eval("KEY_SRC") %>'
                        MaxLength="32" Visible='<%# Session["ProductsMappingsWriteAccess"]  %>'></asp:TextBox>
                        <br />
                    <asp:RequiredFieldValidator runat="server" ID="pdtKeySrcTextBoxInsertRequiredFieldValidator"
                        ControlToValidate="pdtKeySrcTextBoxInsert" ValidationGroup="Insert" ForeColor="Red"
                        ErrorMessage="PDT_KEY_SRC is required"></asp:RequiredFieldValidator>
                </FooterTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>
</fieldset>

更新1:我想指出,这似乎没有受到IE 8的影响,但是当我使用IE 10时它受到了影响。

1 个答案:

答案 0 :(得分:0)

Microsoft .NET

中的ASP.NET浏览器定义文件可以使用修补程序

请参阅http://support.microsoft.com/kb/2600088 for .NET 4.0

请参阅http://support.microsoft.com/kb/2608565了解.Net 3.5