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

rjb*_*l00 8 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>
Run Code Online (Sandbox Code Playgroud)

我已经将列和命名空间的名称更改为非特定于项目的内容,但网格会加载.

正如它在自定义控件中一样,它实例化如下:

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

dataSet变量的类型的System.Data.DataSet.

所以,当我运行这个网站时,会出现Rad Grid.我有一个有4行的网格,其中3行在第1页,最后一行在第2页. 初始的radgrid 在第2页点击之后 当我点击第2页时,一切都按预期发生.页面按钮的样式更改,第1页的行被删除,第2页的行添加到网格中.大!接下来发生的是我不明白的事情:

再次单击第1页时,第2页按钮的样式不会改变(因此它仍然好像被单击)并且第2行和第3行出现在网格上,但第一行是第2页上的行.

重新访问第1页

当加载页面1时,似乎第2页没有清除,但我不知道为什么或如何这样.任何人都对我正在做错的事情有任何想法?

真的很感谢你的帮助.

干杯,

har*_*a11 1

我确信您现在已经弄清楚了这一点,但我想知道这是否是未使用网格数据源设置 NeedDataSource 属性的副作用?

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

OnNeedDataSource =“radGrid_NeedDataSource”

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

protected void radGrid_NeedDataSource(对象发送者, GridNeedDataSourceEventArgs e) { view.RadGrid.DataSource = gridData; }