2009-04-06 2 views
0

Я использую Infragistics UltraWebGrid в моем приложении, когда я использую пользовательские подкачки я не в состоянии получить указанное количество записей на страницу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 записей на страницу. Я что-то пропустил?

Благодаря

ответ

0

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

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

1
<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. Осталось только реализовать функцию JavaScript gotoPage() (разметка, строка 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; 
    } 
} 
Смежные вопросы