Infragistics UltraWebGrid настраиваемый пейджинг - PullRequest
0 голосов
/ 06 апреля 2009

Я использую Infragistics UltraWebGrid в своем приложении, когда я использую пользовательскую подкачку, я не могу получить указанное количество записей на странице

Код, который я написал, строка [] 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 записи на странице. Я что-то упустил?

Спасибо

Ответы [ 2 ]

1 голос
/ 07 марта 2012
<table cellspacing='0' cellpadding='0' width='100%'>  
   <tr>  
       <td width='12%' align='left'>  
           [currentpageindex]/[pagecount]  
      </td>  
       <td width='76%'>  
           <b>[page:1:First]&nbsp;[prev]</b>  
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
           [default]  
           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
           <b>[next]&nbsp;[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;  
    }  
} 
0 голосов
/ 07 апреля 2009

Я считаю, что PageSize - это число пользовательских ярлыков, когда вы используете пользовательский пейджинг. Чтобы назначить сетке только три строки на страницу, необходимо указать только три строки в событии DataBinding сетки.

Настраиваемый пейджинг с этой сеткой - это не просто внешний вид пейджера, а то, что вы сами контролируете большую часть процесса пейджинга. Сетка будет отображать ваши пользовательские метки и превратит их в гиперссылки, кроме той, которая указана в качестве текущей страницы. Когда вы щелкаете по одной из ссылок, PageIndexChanged будет вызываться и сообщать вам индекс ссылки, по которой вы щелкнули. Что вы делаете с этим индексом, зависит от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...