我有以下情况:
.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>
“divContenedor”中还有其他div,但它们并不相关。
Gridview的宽度=“98%”,它位于宽度=“100%”的div内。当我得到包含大文本的行时,GridView可以正确扩展到98%,但是当我获得具有较短文本的行时,它会收缩。它应始终保持相同的宽度。
由于“divContenedor”和“divGrilla”的宽度=“100%”,它们应该扩展到屏幕尺寸,对吗?
我调试了页面,我注意到在“divGrilla”和Gridview(呈现为表格)之间有一个额外的div:
<div class="divGrilla">
<div>
<table id="dgCondiciones"></table>
</div>
</div>
“divGrilla”以Width =“100%”呈现,Gridview(dgCondiciones)实际上具有Width =“98%”。问题是dgCondiciones正在调整到这个额外div的98%,这似乎有更短的宽度。
有人可以向我解释一下这个额外的div是什么,如果有办法让GridView宽度没有为每列设置一个特定的宽度,并且没有设置Gridview宽度为“px”?
答案 0 :(得分: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>
您已编写正确的代码,仅添加&lt; ItemStyle HorizontalAlign =&#34; Left&#34;宽度=&#34; 98%&#34; /&GT;到列的模板字段。 并且Gridview总是在html中呈现为表格,因此我们的观察是正确的。 只根据您的要求使用itemstyle,您的问题将得到解决。 如果您在执行此操作时遇到任何其他问题,请告诉我。