5

ASP.NetアプリにRadGridがあり、AllowPagingをTrueに設定し、PageSizeを10に設定しました。これで、RadGridPageごとに10個のアイテムが読み込まれます。これは、必要なものですが、[次のページ]ボタン(矢印の外観ボタン)を押すとすぐに何もロードされず、RadGridは空になります。どうすれば正常に動作させることができますか?

protected void Page_Load(object sender, EventArgs e)
    {
        PopulateGridOnLoad();
    }
private void PopulateGridOnLoad()
    {
        rgCustomers.DataSource = odsCustomers;
        // your datasource type
        rgCustomers.MasterTableView.VirtualItemCount = 28;
        //your datasource type total/count
        rgCustomers.CurrentPageIndex = rgCustomers.MasterTableView.CurrentPageIndex;
        rgCustomers.Rebind();

    }

protected void grdName_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {

        rgCustomers.DataSource = odsCustomers;
        // your datasource type
        rgCustomers.MasterTableView.VirtualItemCount = 28;
        //your datasource type total/count
        rgCustomers.CurrentPageIndex = rgCustomers.MasterTableView.CurrentPageIndex;
        //Donot rebind here
    }

    protected void btnLoad_Click(object sender, EventArgs e)
    {
        odsCustomers.SelectParameters["CustomerFullName"].DefaultValue = txtFullName.Text;
        odsCustomers.SelectParameters["CustomerMelliCode"].DefaultValue = txtMelliCode.Text;
        odsCustomers.SelectParameters["CustomerHomeAddress"].DefaultValue = txtHomeAddressPart.Text;
        odsCustomers.SelectParameters["CustomerWorkAddress"].DefaultValue = txtWorkAddressPart.Text;
        rgCustomers.DataSource = odsCustomers;
        rgCustomers.DataBind();

    }
4

3 に答える 3

1

デザインでグリッドの次の属性を設定する必要があります

 <telerik:RadGrid ID="grdName" 
             AllowPaging="True" 
             AllowCustomPaging="True"
             VirtualItemCount="0" PageSize="15" >

ロードvb.netにグリッドを入力します

Private Sub PopulateGridOnLoad()

    grdName.DataSource = source ' your datasource type
    grdName.MasterTableView.VirtualItemCount = source.Total 'your datasource type total/count
    grdName.CurrentPageIndex = grdName.MasterTableView.CurrentPageIndex
    grdName.Rebind()

End Sub

ロードc#.netでグリッドにデータを入力します

private void PopulateGridOnLoad()
{
    grdName.DataSource = source;
    // your datasource type
    grdName.MasterTableView.VirtualItemCount = source.Total;
    //your datasource type total/count
    grdName.CurrentPageIndex = grdName.MasterTableView.CurrentPageIndex;
    grdName.Rebind();

}

NeedDatasourcevb.netをオーバーライドする

 Protected Sub grdName_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles grdName.NeedDataSource

         grdName.DataSource = source ' your datasource type
         grdName.MasterTableView.VirtualItemCount = source.Total 'your datasource type total/count
         grdName.CurrentPageIndex = grdName.MasterTableView.CurrentPageIndex
        'Donot rebind here
    End Sub

NeedDatasource c#をオーバーライドする

protected void grdName_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{

    grdName.DataSource = source;
    // your datasource type
    grdName.MasterTableView.VirtualItemCount = source.Total;
    //your datasource type total/count
    grdName.CurrentPageIndex = grdName.MasterTableView.CurrentPageIndex;
    //Donot rebind here
}
于 2012-08-07T12:57:44.013 に答える
1

長い間解決策を見つけた後、問題には2つの小さな問題
が含まれていました:1。DataSource(コード内)とDataSourceID(プロパティ)の両方が設定されていて、それらがうまく連携していませんでし
た2.AllowPagingとAllowCustomPagingの両方が設定されていました本当です、両方とも本当のときはどちらも機能しません:)それはあなたが知っているtelerikチームです、しかし彼らは素晴らしいです私は冗談でした

于 2012-10-07T11:49:22.177 に答える
0

グリッドのデータソースをリセットする必要がある「onNeedDataSource」radgridイベントを定義する必要があります。

  protected void RadGrid_NeedDataSource(object sender, EventArgs e)
      {
          IsNeedDataSource = true;
      }

そして、ページOnPreRenderイベントよりもあなたは次のようにsmthを行う必要があります:

  protected override void OnPreRender(object sender, EventArgs e)
      {
           DriverLinksGrid.DataSource = value;
           DriverLinksGrid.DataBind();
      }

わからないけど、OnNeedDataSource万が一データをバインドできるかもしれない。ただし、 DataBind()そこからはメソッドを使用できない場合があります。

于 2012-08-07T12:24:47.980 に答える