0

IEに問題があります。以下に示すように、ページはすべてのブラウザで正常に動作します。

ここに画像の説明を入力

しかしIEでは、データがあっても表示されません。

ここに画像の説明を入力

この問題は、ListView のアイテム テンプレートで使用する overflow:hidden 属性が原因で発生します。他の値に変更すると、データは IE に表示されますが、もちろん、すべてのブラウザーでレイアウトが台無しになります。

これがソースコードとCSS http://jsfiddle.net/V5aCa/8/です

そして、ここに私のコードがあります:

<asp:ListView ID="BookListView" runat="server" DataSourceID="SqlDataSource1" 
    onselectedindexchanged="BookListView_SelectedIndexChanged">
    <LayoutTemplate>
        <table runat="server" cellpadding="1" id="tblBooks" style="">
          <tr runat="server">
              <td runat="server">
                  <table ID="itemPlaceholderContainer" runat="server" border="0" style="">
                      <tr ID="itemPlaceholder" runat="server">
                      </tr>
                  </table>
              </td>
          </tr>
        </table>
    </LayoutTemplate>

    <ItemTemplate>
         <div style="overflow:hidden">
            <div class="itemTemplateleftColumn">
                <asp:Image ID="Image1" runat="server" ImageUrl='<%# String.Format("~\\Static\\Images\\BookCovers\\{0}", Eval("CoverImageSmall")) %>' Height="120px" Width="90px" BorderColor="Gray" BorderWidth="1px"/>
            </div>
            <div class="itemTemplaterightColumn">
                <div class="titleRow">
                    <asp:Label runat="server" ID="BookTitleLabel" Text='<%# Eval("Title") %>' />
                </div>
                <div class="nameRow">
                    <asp:Label runat="server" ID="FirstNameLabel" Text='<%# Eval("FirstName") %>' />
                    <asp:Label runat="server" ID="LastNameLabel" Text='<%# Eval("LastName") %>' />
                </div>
                <div class="values">
                     <div>
                        value1
                     </div>
                     <div>
                        value2
                     </div>
                </div>    
                <div class="values">
                    <div>
                        value3
                    </div>
                    <div>
                        <asp:Label runat="server" ID="PriceLabel" Text='<%# Eval("Price") %>' />&#8364
                    </div>
                </div>    
            </div>
        </div>
    </ItemTemplate>

</asp:ListView>

</asp:Content>

この問題を解決するための助けをいただければ幸いです。前もって感謝します。

4

2 に答える 2

0

[更新] まず、CSS クラスまたは ID を適用して、インライン スタイルを回避します。

次に、overflow:hidden !importantIE がそのルールを適用しないように記述してみてください。これでうまくいくはずです。

.your-div-class{
  overflow:visible; /* This is default value, but reset it anyway */
  overflow:hidden !important;
}
于 2013-02-19T13:38:58.603 に答える
0

Gridview でその div に最小の高さと幅を適用してから、オーバーフロー min-height: 110px;min-width: 150px; を適用します。

これが役立つことを願って試してみてください!

于 2013-02-19T13:43:55.890 に答える