我有一个ASP:Gridview,其列可能会根据用户点击次数改变可见性。 当控件可见性发生变化时,我希望布局不要调整大小。
这是Gridview代码:
<asp:TemplateField HeaderText="Name" HeaderStyle-HorizontalAlign="Right">
<ItemStyle HorizontalAlign="Left" Wrap="False" Font-Size="Small" />
<HeaderStyle HorizontalAlign="Right" CssClass="text-align:right" Font-Size="XX-Small" />
<ItemTemplate>
<asp:Label ID="Label_Name" runat="server" Text='<%# Bind("Name") %>' Width="150" Height="10" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="doc ">
<ItemStyle HorizontalAlign="Center" Wrap="False" Font-Size="Small" />
<ItemTemplate>
<asp:CheckBox ID="CB_Doc" runat="server" Checked='<%# Bind("MyProp") %>' Width="50px" AutoPostBack="true" OnCheckedChanged="CB_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Book">
<ItemStyle HorizontalAlign="Left" Wrap="False" Font-Size="XX-Small" />
<ItemTemplate>
<asp:HiddenField runat="server" ID="HF_Id" Value='<%# Bind("Id") %>' />
<table>
<tr>
<td style="padding-left: 50px;">
<asp:CheckBox ID="CB_Book" runat="server" Checked='<%# Bind("MyProp2") %>' Width="30" AutoPostBack="true" OnCheckedChanged="CB_CheckedChanged" />
</td>
<!-- A few more controls that might be visible or not depending if user clicks previous CheckBox -->
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
当我点击右侧的复选框时,GridView不好意思以这种方式调整大小:
有没有办法阻止调整大小? 据我所知,肯定有足够的空间来显示所有可见性变化的控件,而不需要调整大小。
提前谢谢。 编辑:帖子中的2个更新后的图像显示为压缩,我们无法看到问题。 :( 但是第一列宽度减少了-30%,导致整个页面布局被打破。答案 0 :(得分:0)
将gridView放入div标签并设置其属性,即
<div id="ScrollList" style="height: 500px; overflow: auto">
<!-- your gridview -->
</div>
还设置了边界的宽度,即
ItemStyle-Width="100%" ControlStyle-Width="100%"
希望它有所帮助。