我正在使用Telerik RadGrid,我们正试图让它与CustomPaging一起使用。我觉得我很接近,但它没有更新网络客户端上的数据。
我的aspx页面代码如下所示:
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
</telerik:RadAjaxLoadingPanel>
<telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
<telerik:RadGrid ID="rgItemCustomFields" runat="server" OnNeedDataSource="rgItemCustomFields_NeedDataSource" AllowPaging="true" AllowCustomPaging="true" VirtualItemCount="1000" >
<PagerStyle Mode="NextPrevAndNumeric" Position="TopAndBottom"></PagerStyle>
</telerik:RadGrid>
</telerik:RadAjaxPanel>
我的代码隐藏看起来像这样:
protected void Page_PreRender(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
rgItemCustomFields.Rebind();
}
}
protected void rgItemCustomFields_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
int currentPage = rgItemCustomFields.CurrentPageIndex;
DataTable data = GetData(currentPage);
rgItemCustomFields.DataSource = data;
}
页面显示在屏幕上,我看到前10行数据,我在第1页。如果我再点击不同的页码,网格就会消失,准备显示新数据,调用rgItemCustomFields_NeedDataSource方法。
当我添加一个断点并在rgItemCustomFields_NeedDataSource方法中查看数据时,它看起来是正确的:我看到10行,它们与我在屏幕上显示的不同。
我在VS中按继续,网格在浏览器中重新显示,但我回到第1页,原始数据又回来了。
以某种方式缓存? (我不知道如何,但某些事情是错误的。)我做的事情愚蠢吗?
(我知道VirtualItemCount是错的:它现在刚刚硬编码到1000,而我试图让剩下的东西工作。而且,一旦我允许每页不同的行数,代码将不得不改变;再次,这只是简化的代码,而我试图让事情有效。我不认为这些事情是问题的一部分,但如果我是个白痴,请随时纠正我。)
答案 0 :(得分:0)