2

原帖

2 附加编辑如下

我的页面上有一个 RADGrid,但是当用户单击网格中的任何控件时,页面前进/后退、页码、PageSize、刷新、复选框行选择器等......整个页面都会刷新。我想让网格本身刷新。我在网上看了,但我似乎无法找到让它全部点击的信息。

我正在使用 DNN 6,并尝试在页面上以编程方式注册 RADAJAXManager(如果丢失,通常是这样)。我看到网上有人提到 EnableAJAX 设置,但后来发现它在较新的 Telerik 控件中已被贬值,因此该选项被排除在外。因此,我尝试使用 AddAjaxSetting() 方法以编程方式添加 AJAX 设置。我已经尝试了参数的几种变体,但没有任何反应。显然我做错了什么......我完全看错了地方?

我尝试用 AJAXPanel 包围我的 RADGrid,但后来我遇到的问题是,RADGrid 不是在刷新时整个页面“闪烁”,而是完全消失,然后重新出现。我查看了 Telerik 网站上的几个 Demo,但我不知道他们是如何让他们的 RADGrid 将旋转圆圈刷新方法用于 RADGrid。

我尝试将页面的“支持部分渲染”设置为 true,但随后发生的情况是整个页面的灰色与旋转的圆圈一起出现。我只想模仿Telerik Demo 上显示的相同行为。

帮助!!!::沮丧的::

有什么线索或建议吗?

编辑 4/18/2012 @ 7:48 PM EST

我正在使用以下代码在放置自定义用户控件的页面上创建 RADAjaxManager(如果缺少)。

Private Sub RegisterRADAjaxManager(ByVal p_objPage As Page)
    '***************************************
    ' Register RAD AJAX Manager (If Missing)
    '***************************************
    Dim objRADAJAXManager As Telerik.Web.UI.RadAjaxManager = Telerik.Web.UI.RadAjaxManager.GetCurrent(p_objPage)

    '***************************************
    ' If RADAJAXManager Is Missing, Add It
    '***************************************
    If (objRADAJAXManager Is Nothing) Then
        objRADAJAXManager = New Telerik.Web.UI.RadAjaxManager
        objRADAJAXManager.ID = "RADAJAXManager"
        p_objPage.Form.Controls.Add(objRADAJAXManager)
    End If 
End Sub

我使用以下代码添加 Ajax 设置:

'***************************************
' Register RADGrid w/ RADAJAXManager
'***************************************
With TekkGrid.GetCurrentRADAJAXManager(Me.Page)
    .AjaxSettings.AddAjaxSetting(Me.gridMain, Me.gridMain)
    .AjaxSettings.AddAjaxSetting(Me.gridMain, Me.RADLoadingPanel)
End With

在我的 ASCX 文件中,我有:

<Telerik:RadGrid ID="gridMain" runat="server" />
<telerik:RadAjaxLoadingPanel ID="RADLoadingPanel" runat="server">
</telerik:RadAjaxLoadingPanel>

我错过了什么吗?

编辑 2012 年 4 月 19 日 @ 美国东部标准时间上午 8:56

尤里卡!我想到了。我的问题是如此愚蠢。我的 Page_Load() 事件上有一个 IF 语句,用于检查 IsPostBack。如果 IsPostPack = False,我只在 RADAjaxManager 上注册 AjaxSettings。我没有意识到 RADAjaxManager 在每个 PostBack 上都被重新创建,因此我丢失了所有 AjaxSettings,所以我将进行 AjaxSettings 注册的方法移到了 IF 语句之外,因此它总是在每个页面加载时运行,瞧!有效!

1)我测试了“分组”功能,它有效,但是......当我拖动列时,您不会“看到”被拖动的列。当您拖动列时,您所看到的只是一个“十字准线”光标。在演示中,当您开始拖动带有列名的框时,它会出现,因此您可以直观地体验“拖放”功能。我如何获得相同的功能?有人知道吗?

4

1 回答 1

1

如果您将模块控件标记为“支持部分渲染”,DNN 会将您的模块包装在RadAjaxPanel. 这绝对是最简单的方法,并且最符合框架提供/期望的内容。

如果您不希望页面在回发期间灰显,您只需调整样式(可能在门户/皮肤级别,以确保整个站点的一致性)。所以,如果你的皮肤用一个 ID 包裹整个站点MySkin,你可以使用这个 CSS 来改变更新进度显示的样式:

#MySkin .RadAjax .raTransp {display:none;}

更新

要让更新进度指示器仅显示在网格上,请尝试使用 和 的组合,RadAjaxManager就像RadAjaxLoadingPanel演示一样;就像是:

<telerik:RadAjaxManager runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
于 2012-04-18T17:52:54.663 回答