我有Telerik RadGrid,其中填充了存储过程中的一些数据。
protected void Page_Load(object sender, EventArgs e)
{
RadGrid2.DataSource = Utils_PA.GetData_From_SQl("SPname");
RadGrid2.DataBind();
}
我在页面上有RadAjaxLoadingPanel和RadAjaxManager。
这是我的标记:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid2">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1" UpdatePanelCssClass="" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="RadGrid2" EnableViewState="true" runat="server" AllowSorting="True" AllowPaging="True" PageSize="30"
AllowFilteringByColumn="True" GroupPanelPosition="Top" CellSpacing="-1" GridLines="Both">
<GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings>
<PagerStyle Mode="NextPrevNumericAndAdvanced" Position="TopAndBottom" PageSizeControlType="RadComboBox"></PagerStyle>
</telerik:RadGrid>
对我来说一切正常。但是,当我在网格上更改页面或使用过滤或排序时,网格消失一秒钟,然后显示排序/过滤后的新页面数据。
因此,它的工作原理正确,但是如何通过消失来解决此问题?我尝试使用RadAjaxLoadingPanel,就像在Telerik Demos中展示Show Loader一样。它可以工作,但是不能解决网格消失的问题。
答案 0 :(得分:0)
我建议使用高级数据绑定方法,并在需要刷新网格时调用Rebind()方法:Advanced Data-binding (Using NeedDataSource Event)
<telerik:RadGrid ID="RadGrid2" runat="server" OnNeedDataSource="RadGrid2_NeedDataSource">
</telerik:RadGrid>
protected void RadGrid2_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
RadGrid2.DataSource = Utils_PA.GetData_From_SQl("SPname");
}
注意:使用高级数据绑定时,避免调用Databind()方法。 另外,切勿在NeedDataSource事件内部调用Rebind()方法,因为它会进入无限循环并会使服务器崩溃。