[Mono-devel-list] System.Web: DataGrid and PagedDataSource- Paging is not working

Mohammad DAMT md at mt.web.id
Tue Oct 28 22:02:14 EST 2003


http://bugzilla.ximian.com/show_bug.cgi?id=50285

Paging in DataGrid is not working in these areas:
- LastPage value is wrong
- Changing page with PagerStyle.NumericPages by clicking the page number
will not change the DataGrid.CurrentPageIndex

Steps to reproduce the problem:
1. run the sample file

Actual Results:
1. Click the ">" link to advance the page until the end of the page, it
will an exception "DataGrid_Invalid_Current_PageIndex: MyDataGrid"
2. if we click "Show numeric page navigation buttons" the PagerStyle will
change to NumericPages, but if we click the link, it will not work

Expected Results:
1. Only subset of dataset displayed honoring PageSize property
2. Page link should work and will change CurrentPageIndex

How often does this happen? 
always

Additional Information:
mcs/class from cvs 20031029 09:44GMT+07

--
Mohammad DAMT <mdamt at bisnisweb.com>
http://www.bisnisweb.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: paged_datagrid.diff
Type: text/x-patch
Size: 762 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20031029/2d3a409c/attachment.bin 
-------------- next part --------------
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
 <html>
 <script language="C#" runat="server">
 
    ICollection CreateDataSource() 
    {
       DataTable dt = new DataTable();
       DataRow dr;
 
       dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
       dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
       dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
       dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
 
       for (int i = 0; i < 100; i++) 
       {
          dr = dt.NewRow();
 
          dr[0] = i;
          dr[1] = "Item " + i.ToString();
          dr[2] = DateTime.Now.ToShortDateString();
          dr[3] = (i % 2 != 0) ? true : false;
 
          dt.Rows.Add(dr);
       }
 
       DataView dv = new DataView(dt);
       return dv;
    }
 
    void Page_Load(Object sender, EventArgs e) 
    {
       if (chk1.Checked)
          MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
       else 
          MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;
 
       BindGrid();
    }
 
    void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
    {
       MyDataGrid.CurrentPageIndex = e.NewPageIndex;
       BindGrid();
    }
 
    void BindGrid() 
    {
       MyDataGrid.DataSource = CreateDataSource();
       MyDataGrid.DataBind();
       ShowStats();
    }
 
    void ShowStats() 
    {
       lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
       lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
       lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
       lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
    }
 
 
 </script>
 
 <body>
 
    <h3>DataGrid Paging Example</h3>
 
    <form runat=server>
 
       <asp:DataGrid id="MyDataGrid" runat="server"        
			AllowPaging="True"
            PageSize="10"
            OnPageIndexChanged="MyDataGrid_Page"
            BorderColor="black"
            BorderWidth="1"
            GridLines="Both"
            CellPadding="3"
            CellSpacing="0"
            Font-Name="Verdana"
            Font-Size="8pt">

            <PagerStyle Mode="NumericPages"
                        HorizontalAlign="Right">
            </PagerStyle>


            <HeaderStyle BackColor="#aaaadd">
            </HeaderStyle>

            <AlternatingItemStyle BackColor="#eeeeee">
            </AlternatingItemStyle>

       </asp:DataGrid>
 
       <p>
 
       <asp:Checkbox id="chk1" runat="server"
            Text="Show numeric page navigation buttons"
            Font-Name="Verdana"
            Font-Size="8pt"
            AutoPostBack="true"/>
 
       <p>
 
       <table bgcolor="#eeeeee" cellpadding="6">
          <tr>
             <td nowrap>
                
 
                   <asp:Label id="lblEnabled" 
                        runat="server"/><br>
                   <asp:Label id="lblCurrentIndex" 
                        runat="server"/><br>
                   <asp:Label id="lblPageCount" 
                        runat="server"/><br>
                   <asp:Label id="lblPageSize" 
                        runat="server"/><br>
 
                
             </td>
          </tr>
       </table>
 
    </form>
 
 </body>
 </html>
   


More information about the Mono-devel-list mailing list