首页 文章

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

提问于
浏览
8

我最近开始使用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 回答

  • 1

    我确定你现在已经搞清楚了,但我想知道这是不是没有用网格数据源设置NeedDataSource属性的副作用?

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

    OnNeedDataSource =“radGrid_NeedDataSource”

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

    protected void radGrid_NeedDataSource(object sender,GridNeedDataSourceEventArgs e)

  • 0

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

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

相关问题