Настраиваемая подкачка Infragistics UltraWebGrid

Я использую 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 записей на странице. Я что-то упустил?

Спасибо


person Community    schedule 06.04.2009    source источник


Ответы (2)


<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;  
    }  
} 
person vaidehi    schedule 07.03.2012

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

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

person John Saunders    schedule 07.04.2009