如何防止GridView调整大小(ASP)

时间:2017-01-31 08:16:04

标签: c# asp.net gridview

我有一个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>

默认以这种方式显示: enter image description here

当我点击右侧的复选框时,GridView不好意思以这种方式调整大小:

enter image description here

有没有办法阻止调整大小? 据我所知,肯定有足够的空间来显示所有可见性变化的控件,而不需要调整大小。

提前谢谢。

编辑:帖子中的2个更新后的图像显示为压缩,我们无法看到问题。 :(  但是第一列宽度减少了-30%,导致整个页面布局被打破。

1 个答案:

答案 0 :(得分:0)

将gridView放入div标签并设置其属性,即

<div id="ScrollList" style="height: 500px; overflow: auto">
<!-- your gridview -->
</div>

还设置了边界的宽度,即

ItemStyle-Width="100%" ControlStyle-Width="100%"

希望它有所帮助。