Telerik RadGrid исчезает на секунду при смене страницы - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть 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 для шоу Loader.Это работает, но не исправляет исчезновение сетки.

1 Ответ

0 голосов
/ 26 сентября 2018

Я предлагаю использовать расширенный метод привязки данных и вызывать метод Rebind () всякий раз, когда вы хотите обновить сетку: Расширенное связывание данных (с использованием события NeedDataSource)

<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 () при использовании расширенного связывания данных.Кроме того, метод Rebind () никогда не должен вызываться внутри события NeedDataSource, так как он войдет в бесконечный цикл и приведет к краху сервера.

...