0

カスタムページングを使用するときにアプリケーションでInfragisticsUltraWebGridを使用していますが、ページごとに指定された数のレコードを取得できません

私が書いたコードは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つのレコードではなく、テーブルのすべてのレコードを表示しています。私は何かが足りないのですか?

ありがとう

4

2 に答える 2

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 プロパティに割り当てることもできます。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;  
    }  
} 
于 2012-03-07T11:40:42.933 に答える
0

PageSizeカスタム ページングを使用している場合、それはカスタム ラベルの数だと思います。グリッドに 1 ページあたり 3 行のみを与えるには、グリッドの DataBinding イベントで 3 行のみを与える必要があります。

このグリッドを使用したカスタム ページングは​​、ページャーのカスタム外観だけではありません。ページング プロセスの大部分を自分で制御する必要があります。グリッドにカスタム ラベルが表示され、現在のページとして示されているものを除いて、すべてがハイパーリンクになります。リンクの 1 つをクリックすると、PageIndexChanged が発生し、クリックされたリンクのインデックスが通知されます。そのインデックスをどうするかはあなた次第です。

于 2009-04-07T01:40:20.003 に答える