当我使用自定义分页时,我在我的应用程序中使用Infragistics UltraWebGrid我无法检索每页指定数量的记录
我写的代码是 string [] cusLabel;
在网格初始化
grid.DisplayLayout.Pager.AllowCustomPaging = true;
grid.DisplayLayout.Pager.AllowPaging = true;
grid.DisplayLayout.Pager.StyleMode = PagerStyleMode.CustomLabels;
grdSysManager.DisplayLayout.Pager.PageSize = 3;
getCustomLabel();
grdSysManager.DisplayLayout.Pager.CustomLabels = cusLabel;
private void getCustomLabel()
{
DataTable dt = (DataTable)grdSysManager.DataSource;
DataSet ds = new DataSet();
ds = dt.DataSet;
//ds = (DataSet)grdSysManager.DataSource;
int NoOfRows = ds.Tables[0].Rows.Count;
int PageSize = grdSysManager.DisplayLayout.Pager.PageSize;
if (NoOfRows % PageSize == 0)
{
totalNoOfPagings = NoOfRows / PageSize;
}
else
{
totalNoOfPagings = (NoOfRows / PageSize) + 1;
}
cusLabel = new string[totalNoOfPagings + 2];
cusLabel[0] = "First";
for (int i = 1; i <= totalNoOfPagings; i++)
{
cusLabel[i] = i.ToString();
}
cusLabel[totalNoOfPagings + 1] = "Last";
}
上面是我编写的代码,但它显示的是表中的所有记录而不是 每页3条记录。我错过了什么吗?
由于
答案 0 :(得分:1)
<table cellspacing='0' cellpadding='0' width='100%'>
<tr>
<td width='12%' align='left'>
[currentpageindex]/[pagecount]
</td>
<td width='76%'>
<b>[page:1:First] [prev]</b>
[default]
<b>[next] [page:[pagecount]:Last]</b>
</td>
<td width='12%' align='right' title='Enter page number and press Enter'>
Go to:
<input id='xtxtGotoPage' size='5'
style='font-family:verdana;font-size:8pt;padding:0 0 0 0'
type='text' onKeyPress='return gotoPage()' autocomplete='off' />
</td>
</tr>
</table>
此模式可以在网格设计器中直接分配,也可以在运行时分配给Pager.Pattern属性。剩下的唯一事情是实现gotoPage()
JavaScript函数(标记,第17行),它将转到用户输入的页码。这是:
function gotoPage() {
if (event.keyCode == 13) {
var otxtGotoPage = event.srcElement;
var iPageNo = otxtGotoPage.value
if (!isNaN(iPageNo)) {
var oGrid = igtbl_getGridById('xuwgMyGrid');
if (iPageNo < 1 || iPageNo > oGrid.PageCount) {
alert('Please enter page number between 1 and ' +
oGrid.PageCount)
} else {
oGrid.goToPage(iPageNo)
}
} else {
alert('Please enter correct numeric page number');
}
otxtGotoPage.focus();
otxtGotoPage.value = '';
return false;
}
}
答案 1 :(得分:0)
我相信当您使用自定义分页时,PageSize
是自定义标签的数量。为了使网格每页只有三行,你必须在网格的DataBinding事件中只给它三行。
使用此网格进行自定义分页不仅仅是寻呼机的自定义外观 - 而是您自己控制大部分分页过程。网格将显示您的自定义标签,它将使它们全部成为超链接,除了指示为当前页面的超链接。单击其中一个链接时,将引发PageIndexChanged,它将告诉您单击的链接的索引。您对该索引的处理取决于您。