asp.net中的GridView控件,用来显示数据是相当的方便,但是它有一个致命的弱点,就是没有滚动条,当数据量大的时候,只能使用分页的功能来将就着使用。
那么,有没有办法能让GridView也能使用滚动条呢?
方法是有的:那就是,我们可以借助另外一个控件,这个控件就是Panel控件。
实现方法为:
把GridView放在Panel控件内部,然后,设置Panel控件的滚动条。Panel控件的滚动条的属性是这样设置的,在面板里面,设置这个属性ScrollBars="Both",这样,就有滚动条了。
最后,Panel控件不能设置它的高度和宽度,让其没有这两个属性的设置。这样,当GridView数据行或列比较多的时候,超出了Panel控件的范围,那么,滚动条就自动出现了。
下面我们给大家一个实例,其代码如下:
<asp:Panel ID="Panel2" runat="server" ScrollBars="Both" Height="300px">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px"
CellPadding="3" DataKeyNames="ID" ForeColor="Black"
GridLines="Vertical" HorizontalAlign="Center" PageSize="20" Width="930px" OnPageIndexChanging="GridView1_PageIndexChanging" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="Subject" HeaderText="学科" SortExpression="Subject" />
<asp:BoundField DataField="Chapter" HeaderText="章节知识" SortExpression="Chapter" />
<asp:BoundField DataField="Difficulty" HeaderText="试题难度" SortExpression="Difficulty" />
<asp:BoundField DataField="ExamType" HeaderText="试题类型" SortExpression="ExamType" />
<asp:BoundField DataField="ExamClass" HeaderText="试题分类" SortExpression="ExamClass" />
<asp:BoundField DataField="Answer" HeaderText="标准答案" SortExpression="Answer" />
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
</asp:Panel>