2011-10-07 92 views
8

我最近使用ASP.Net和Telerik的radgrid控件的開始,但已經遇到了一個問題:Telerik的radgrid控件分頁 - 重複記錄,並堅持按鈕

我radgrid控件對象中的自定義控制對象內的用戶控件對象中頁面對象(具有腳本管理器)。

我有幾個用戶控件說內自定義控制,每個包含標記的radgrid控件對象如下:

<%@ 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網格。我有一個4行的網格,其中3個在第1頁,最後一行在第2頁。 initial radgrid after page 2 click 當我單擊頁面2時,所有事情都按預期發生。頁面按鈕的樣式會更改,第1頁的行將被刪除,第2頁的行會添加到網格中。大!接下來會發生什麼我不明白:

當再次點擊頁面1時,頁面2按鈕的樣式不會改變(所以它仍然像點擊一樣),行2和3出現在格,但第一行是這是第2頁

re-visit to page 1

它時,似乎第1頁加載2頁不清除該行,我不知道爲什麼或如何,這是,雖然。任何人有任何想法,我不正確的做法?

非常感謝您的幫助。

乾杯,

羅布

+1

真的很好拼在一起的問題。這是應該如何回答的問題。 –

+0

發佈控件本身的任何可能性?我開始設置一個項目來排除故障,但是如果我不能實例化對象,就沒有辦法。 – KreepN

+0

您在所有瀏覽器中或僅在任何特定瀏覽器中收到此問題? –

回答

1

我相信你有這個想通了現在,但我不知道這是不是不與電網數據源設置NeedDataSource財產的副作用?

將此添加到前端的RadGrid控件中。

OnNeedDataSource = 「radGrid_NeedDataSource」

和在代碼中處理它的後面。

保護無效radGrid_NeedDataSource(對象發件人, GridNeedDataSourceEventArgs E){ view.RadGrid.DataSource =的GridData; }

+0

我相信這應該可以做到! NeedDataSource做你需要的所有魔法。 –

0

加載時不需要將數據集提供給網格。必要時,使用您在設計中設置的DataSourceID檢索數據集。

刪除「view.DataSource = dataSet;」重新綁定功能和一切應該按預期工作。