2011-10-07 42 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;”重新绑定功能和一切应该按预期工作。