更新网格行上的RadPanel单击部分回发

时间:2013-06-10 16:18:00

标签: telerik asp.net-ajax radgrid radajaxmanager

我正在开发一个包含多个RadGrids和RadHtmlCharts的项目,该页面使用两个RadSplitters进行布局。顶部分割器包含两个RadGrids,底部分割器包含三个RadHtmlCharts。

下面的代码(与清除阅读时删除的问题无关的代码):

<telerik:RadAjaxManagerProxy ID="AjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="Tasks">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="InterviewProgressPieChartErrorMessage" />
                <telerik:AjaxUpdatedControl ControlID="InterviewProgressPanePieChart" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManagerProxy>

<telerik:RadSplitter ID="GridStorageSplitter" runat="server" Orientation="Vertical" Width="920" LiveResize="false" CssClass="radSplitter" BorderStyle="None" BorderSize="0">

    <telerik:RadPane ID="NotificationsPane" runat="server" CssClass="gridpaneleft" MinWidth="250">
        <telerik:RadGrid ID="Notifications" runat="server" AllowSorting="True" CellSpacing="0" DataSourceID="EventLog" AutoGenerateColumns="False" GridLines="None" CssClass="gridgrid">
        </telerik:RadGrid>
    </telerik:RadPane>

    <telerik:RadSplitBar ID="GridSplitter" runat="server">
        <AdjacentPanesNames LeftPaneName="NotificationsPane" RightPaneName="TasksPane" />
    </telerik:RadSplitBar>

    <telerik:RadPane ID="TasksPane" runat="server" CssClass="gridpaneright" MinWidth="400">
        <telerik:RadGrid ID="Tasks" DataSourceID="JobsInfo" runat="server" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" CssClass="gridgrid">

            <ClientSettings EnablePostBackOnRowClick="true">
                <Selecting AllowRowSelect="true" EnableDragToSelectRows ="false"/>
                <Scrolling AllowScroll="True" UseStaticHeaders="True" />
            </ClientSettings>

            <MasterTableView DataSourceID="JobsInfo" AllowMultiColumnSorting="True" HierarchyLoadMode="Client" ShowHeader="false">
            </MasterTableView>

        </telerik:RadGrid>
    </telerik:RadPane>

</telerik:RadSplitter>

<telerik:RadSplitter ID="GraphStorageSplitter" runat="server" Orientation="Vertical" Width="920" Height="400" LiveResize="false" CssClass="radSplitter" BorderStyle="None" BorderSize="0">

    <telerik:RadPane ID="JobNumbersPane" runat="server" Width="70" MinWidth="60">
        <asp:Table ID="JobNumbersTable" runat="server" CssClass="topmargin7"></asp:Table>
    </telerik:RadPane>

    <telerik:RadSplitBar ID="GraphSplitter1" runat="server">
        <AdjacentPanesNames LeftPaneName="JobNumbersPane" RightPaneName="InterviewStartTimesGraphPane" />
    </telerik:RadSplitBar>

    <telerik:RadPane ID="InterviewStartTimesGraphPane" runat="server" Width="30%" MinWidth="280">
        <telerik:RadHtmlChart ID="interviewStartTimes" runat="server" Legend-Appearance-Visible="false"></telerik:RadHtmlChart>
    </telerik:RadPane>

    <telerik:RadSplitBar ID="GraphSplitter2" runat="server">
        <AdjacentPanesNames LeftPaneName="InterviewStartTimesGraphPane" RightPaneName="ReferralsChartPane" />
    </telerik:RadSplitBar>

    <telerik:RadPane ID="ReferralsChartPane" runat="server" Width="30%" MinWidth="200">
        <telerik:RadHtmlChart ID="referralsChart" runat="server" OnLoad="referralsChart_Load"></telerik:RadHtmlChart>
    </telerik:RadPane>

    <telerik:RadSplitBar ID="GraphSplitter3" runat="server">
        <AdjacentPanesNames LeftPaneName="ReferralsChartPane" RightPaneName="InterviewProgressPane" />
    </telerik:RadSplitBar>

    <telerik:RadPane ID="InterviewProgressPane" runat="server" Width="30%" MinWidth="200">

        <asp:Label ID="InterviewProgressPieChartErrorMessage" runat="server" Text="No Interviews have been sent out for the selected job." Visible="false"></asp:Label>
        <telerik:RadHtmlChart runat="server" ID="InterviewProgressPieChart" Visible="true" OnLoad="loadInterviewProgressPieChart">
        </telerik:RadHtmlChart>
    </telerik:RadPane>

</telerik:RadSplitter>

我正在尝试向页面添加功能,以便在用户单击Tasks RadGrid中的行时,使用相关数据加载InterviewProgressPieChart。它可以工作,但是帖子重新加载整个页面(包括母版页),我想避免这种情况 我也尝试过使用RadAjaxManager,但它仍然会在帖子后面重新加载整个页面(按照设计,似乎)。

在RadAjaxPanel中包装RadSplitters只允许我在回发时加载该面板的内容,但是你不能将RadAjaxPanel放在RadSplitter中,我不知道如何只放置相关的Grid / Chart在AjaxPanel中。

1 个答案:

答案 0 :(得分:0)

您需要一个设置,其启动器(AjaxControlID)是网格(通知),在更新的控件中,您需要InterviewProgressPieChart图表:

    <telerik:AjaxSetting AjaxControlID="Notifications">
        <UpdatedControls>
            <telerik:AjaxUpdatedControl ControlID="InterviewProgressPieChart" />
        </UpdatedControls>
    </telerik:AjaxSetting>

也就是说,假设您的网格在行点击时自动发布页面。