更改页面时,Telerik RadGrid消失了一秒钟

时间:2018-09-24 20:13:07

标签: c# asp.net telerik telerik-grid radgrid

我有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一样。它可以工作,但是不能解决网格消失的问题。

1 个答案:

答案 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()方法,因为它会进入无限循环并会使服务器崩溃。