2011-10-07 12 views
8

私は最近、ASP.NetとTelerikのRadGridを使い始めましたが、問題に遭遇していますTelerik RadGridページング - 重複レコードとこだわりのボタン

マイRadGridオブジェクトは、内部にカスタムコントロールオブジェクト内のUserControlオブジェクト内にありますページオブジェクト(スクリプトマネージャを持つ)。

私はカスタムコントロールは、RadGridオブジェクトのためのマークアップを含む各以下のように、言っ内のいくつかのUserControl持っている:私は非プロジェクト固有の何かに列と名前空間の名前を変更した

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AreaListRadGrid.ascx.cs" Inherits="WebControls.AreaListRadGrid" %> 
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" %> 

<telerik:RadAjaxPanel runat="server" ID="radAjaxPanel" 
      EnableAJAX="true" LoadingPanelID="radAjaxLoadingPanel"> 
    <telerik:RadGrid AllowPaging="true" AutoGenerateColumns="false" DataSourceID="gridData" EnableViewState="true" GridLines="None" ID="radGrid" runat="server"> 
     <PagerStyle Mode="NumericPages" /> 
     <MasterTableView> 
      <Columns> 
       <telerik:GridBoundColumn DataField="ColA" HeaderText="A" /> 
       <telerik:GridBoundColumn DataField="ColB" HeaderText="B" /> 
       <telerik:GridBoundColumn DataField="ColC" HeaderText="C" /> 
       <telerik:GridBoundColumn DataField="ColD" HeaderText="D" /> 
       <telerik:GridBoundColumn DataField="ColE" HeaderText="E" /> 
      </Columns> 
     </MasterTableView> 
    </telerik:RadGrid> 
</telerik:RadAjaxPanel> 

<asp:ObjectDataSource ID="gridData" runat="server" 
         SelectMethod="GetData" 
         SelectCountMethod="GetDataCount" 
         OnObjectCreating="dataObjectCreating" 
         TypeName="AreaListRadGrid"> 
</asp:ObjectDataSource> 

<telerik:RadAjaxLoadingPanel runat="server" ID="radAjaxLoadingPanel"> 
     Loading please wait.... 
</telerik:RadAjaxLoadingPanel> 

が、グリッド負荷。それはカスタムコントロールにありますとおり、次のように

、それがインスタンス化されます。

var view = (AreaListRadGrid)this.TemplateControl.LoadControl(".\\WebControls\\AreaListRadGrid.ascx"); 
view.DataSource = dataSet; 
areaCenterMiddle.Controls.Add(view); 
view.RadGrid.Rebind(); 

dataSet変数の型System.Data.DataSetです。

このウェブサイトを実行すると、Rad Gridが表示されます。私は4行のグリッドを持っており、そのうちの3つは1ページにあり、最後の行は2ページにあります。 initial radgrid after page 2 click 2ページ目をクリックすると、すべてが期待通りに行われます。ページボタンのスタイルが変更され、ページ1の行が削除され、ページ2の行がグリッドに追加されます。すばらしいです!次に何が起こるかは、私が理解していないことです。

ページ1をもう一度クリックすると、ページ2ボタンのスタイリングは変更されません(クリックされているかのようになります)。グリッドは、しかし、最初の行は、私はなぜか、どのようにこれがわからないんだけど、2ページ

re-visit to page 1

それは2ページが1ページがロードされるときにクリアされていないかのように思えるにあった行でありますしかし、。私が間違ってやっていることに誰もが何か考えを持っていましたか?

本当にありがとうございます。

乾杯、

ロブ

+1

本当によく質問します。これが質問のあり方です。 –

+0

コントロールそのものを投稿する可能性はありますか?トラブルシューティングのためのプロジェクトをセットアップし始めましたが、オブジェクトをインスタンス化できない場合には、方法がないことに気付きました。 – KreepN

+0

この問題はすべてのブラウザで発生するか、特定のブラウザでのみ発生しますか? –

答えて

1

私はあなたが、これは今で考え出し持っていると確信しているが、これは、グリッドのデータソースとNeedDataSourceプロパティを設定していないの副作用である場合、私は思ったんだけど?

これをフロントエンドのRadGridコントロールに追加します。

OnNeedDataSource = "radGrid_NeedDataSource"

と背後にあるコードでそれを処理します。

保護ボイドradGrid_NeedDataSource(オブジェクト送信者、 GridNeedDataSourceEventArgs電子){ view.RadGrid.DataSource = gridData。 }

+0

これはトリックを行うべきだと私は信じています! NeedDataSourceは必要なすべての魔法を実行します。 –

0

ロード時にデータセットをグリッドに指定する必要はありません。データセットは、必要に応じてデザインで設定したDataSourceIDを使用して取得されます。

「view.DataSource = dataSet;」を削除します。リバインド機能とすべてが期待通りに機能するはずです。

関連する問題