none
GridView分页问题---高度 RRS feed

  • 问题

  • 我在GridView中进行分页,每页显示10条数据,可是我只有15条数据,当我点击第二页的时候,GridView的高度就变了,我想让它显示和第一页一样的高度,该怎么解决呢?

    除了在数据源中添加空白行外还有没有别的方法?

    2012年3月29日 9:48

答案

  • 我想要的效果是只是中间的部分变化,头部和尾部不变。



    只要增加两个className让Header和Pager套用就好了

    <style type="text/css">
       
        .myTable
        {
            height:130px;
           
        }
        .myHeader,.myPager
        {
           
           height:20px;
            }
        </style>

    <asp:GridView runat="server" ID="GridView1" AllowPaging="True"  CssClass="myTable"
            AutoGenerateColumns="False" DataKeyNames="CategoryID"
            DataSourceID="SqlDataSource1" PageSize="4" >
            <Columns>
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID"
                    InsertVisible="False" ReadOnly="True" SortExpression="CategoryID" />
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
                    SortExpression="CategoryName" />
            </Columns>
            <HeaderStyle CssClass="myHeader" />
            <PagerStyle CssClass="myPager" />
        </asp:GridView>

    執行結果:

    你的问题听起来是要改变GridView的外貌,要改变呈现外貌请爱用CSS



    2012年3月30日 17:29

全部回复

  • 用CSS控制

        <style type="text/css">
       
        .myTable
        {
        height:500px;
           
        }
        </style>

     <asp:GridView runat="server" ID="GridView1" AllowPaging="True"  CssClass="myTable"
            AutoGenerateColumns="False" DataKeyNames="CategoryID"
            DataSourceID="SqlDataSource1" PageSize="5" >
            <Columns>
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID"
                    InsertVisible="False" ReadOnly="True" SortExpression="CategoryID" />
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
                    SortExpression="CategoryName" />
            </Columns>
        </asp:GridView>


    2012年3月29日 11:20
  • HI,Shadow And Happy Code

    我试过了,这种设置Css的的方法,和在后面设置GridView.Height=Unit.Pixel(500);的效果是一样的,当我显示第二页的时候,如果数据 不满10

    条就会变成如下:我想要的效果是只是中间的部分变化,头部和尾部不变。



    2012年3月30日 1:39
  • 我想要的效果是只是中间的部分变化,头部和尾部不变。



    只要增加两个className让Header和Pager套用就好了

    <style type="text/css">
       
        .myTable
        {
            height:130px;
           
        }
        .myHeader,.myPager
        {
           
           height:20px;
            }
        </style>

    <asp:GridView runat="server" ID="GridView1" AllowPaging="True"  CssClass="myTable"
            AutoGenerateColumns="False" DataKeyNames="CategoryID"
            DataSourceID="SqlDataSource1" PageSize="4" >
            <Columns>
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID"
                    InsertVisible="False" ReadOnly="True" SortExpression="CategoryID" />
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
                    SortExpression="CategoryName" />
            </Columns>
            <HeaderStyle CssClass="myHeader" />
            <PagerStyle CssClass="myPager" />
        </asp:GridView>

    執行結果:

    你的问题听起来是要改变GridView的外貌,要改变呈现外貌请爱用CSS



    2012年3月30日 17:29