2016-03-10 45 views
0

我有以下情形:爲什麼這個ASP.NET Gridview容器不能保持其寬度?

.divContenedor 
    { 
     background-color: #F2F2F2; 
     position: relative; 
     width: 100%; 
    } 
    .divGrilla 
    { 
     width: 100%; 
     margin: 0 auto 0 auto; 
     display: flex; 
     align-items: center; 
     padding-left: 10px; 
    } 

<asp:UpdatePanel runat="server" ID="updCondiciones"> 
     <ContentTemplate> 
      <div class="divContenedor"> 
       <div class="divGrilla"> 
        <asp:GridView ID="dgCondiciones" runat="server"  Width="98%" AutoGenerateColumns="False" 
         OnRowDataBound="dgCondiciones_RowDataBound" PageSize="20" AllowPaging="true" 
         BorderColor="#DCDCDC" AllowSorting="True" OnSortCommand="dgCondiciones_SortCommand" 
         OnPageIndexChanging="dgCondiciones_PageIndexChanging" OnSorting="dgCondiciones_Sorting"> 
         <Columns> 
         </Columns> 
        </asp:GridView> 
       </div> 
      </div> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

還有其他的div裏面的「divContenedor」,但他們是不相關的。

Gridview有一個寬度=「98%」,它在寬度=「100%」的div內。當我得到包含大文本的行時,GridView正確地擴展到98%,但是當我得到更短文本的行時,它會收縮。它應該始終保持相同的寬度。

由於「divContenedor」和「divGrilla」的Width =「100%」,它們應該擴大到屏幕尺寸,對吧?

我已調試的頁面和我注意到,有「divGrilla」和在GridView(呈現爲一個表)之間呈現的額外的div:

<div class="divGrilla"> 
    <div> 
    <table id="dgCondiciones"></table> 
    </div> 
</div> 

「divGrilla」呈現與寬度=「100% 「和Gridview(dgCondiciones)實際上有一個寬度=」98%「。問題是,dgCondiciones正在調整到這個額外的div的98%,這似乎有一個更短的寬度。

有人能向我解釋這是什麼額外的div,如果有辦法讓GridView的寬度設置特定的寬度每一列和設置中的「PX」 GridView的寬度是多少?

回答

0
<asp:UpdatePanel runat="server" ID="updCondiciones"> 
    <ContentTemplate> 
     <div class="divContenedor"> 
      <div class="divGrilla"> 
       <asp:GridView ID="GridView1" runat="server" Width="98%" AutoGenerateColumns="False" 
        OnRowDataBound="dgCondiciones_RowDataBound" PageSize="20" AllowPaging="true" 
        BorderColor="#DCDCDC" AllowSorting="True" OnSortCommand="dgCondiciones_SortCommand" 
        OnPageIndexChanging="dgCondiciones_PageIndexChanging" OnSorting="dgCondiciones_Sorting"> 
        <Columns> 
         <asp:TemplateField HeaderText=""> 
          <ItemTemplate> 
           <asp:DropDownList ID="test" runat="server" Width="98%" > 
           </asp:DropDownList> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Left" Width="98%" /> 
          <HeaderStyle HorizontalAlign="Left" Width="98%" /> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView> 
      </div> 
     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

你已經寫正確的代碼,只添加< ItemStyle Horizo​​ntalAlign = 「左」 WIDTH = 「98%」/>你列的模板列。 和Gridview總是呈現爲HTML表格,所以我們的觀察是正確的。 只能根據您的要求使用itemstyle,您的問題將得到解決。 如果您在執行此操作時遇到任何其他問題,請讓我來。

+0

我在Gridview中實際上有16列,正如我所說的,我不想專門設置每個列的寬度。我希望他們根據Gridview大小自動調整,這應該是屏幕大小的98%。 – g0np

+0

您需要根據您的內容管理列寬,以便所有列的添加數爲100.例如,您有5列給每列添加20%的寬度。 –

相關問題