Telerik RadGrid分页 - 重复记录和粘贴按钮

时间:2011-10-07 10:23:23

标签: asp.net telerik radgrid

我最近开始使用ASP.Net和Telerik的RadGrid,但遇到了一个问题:

我的RadGrid对象位于Page对象(具有脚本管理器)中的自定义控件对象中的UserControl对象中。

我在自定义控件中有几个UserControl,每个包含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 Grid。我有一个有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页没有清除,但我不知道为什么或如何这样做。任何人都对我正在做错的事情有任何想法?

真的很感谢你的帮助。

干杯,

罗布

2 个答案:

答案 0 :(得分:1)

我确定你现在已经弄明白了,但是我想知道这是否是没有使用网格数据源设置NeedDataSource属性的副作用?

将其添加到前端的RadGrid控件上。

  

OnNeedDataSource = “radGrid_NeedDataSource”

并在后面的代码中处理它。

  
    

protected void radGrid_NeedDataSource(object sender,     GridNeedDataSourceEventArgs e){         view.RadGrid.DataSource = gridData; }

  

答案 1 :(得分:0)

加载时,您无需向网格提供数据集。在需要时,使用您在设计中设置的DataSourceID检索数据集。

删除“view.DataSource = dataSet;”和重新绑定功能,一切都应该按预期工作。