[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