【问题标题】:RadAjaxManager won't allow me to Rebind my RadTreeListRadAjaxManager 不允许我重新绑定我的 RadTreeList
【发布时间】:2014-11-19 04:06:28
【问题描述】:

我使用 RadTreeList 来显示项目,当右键单击树项目时使用 RadContextMenu(插入、更新、删除),使用 RadWindowManager 来帮助在 RadContextMenu ItemClick 上打开弹出窗口。当他们单击“插入”或“更新”时,他们保存的对话框窗口会顺利打开,对话框会关闭,树形列表会完美重新绑定。当他们点击删除时,我不需要打开一个窗口,只需运行删除代码,然后运行 ​​RadTreeList.Rebind();

由于我的 RadAjaxManager 中有这个项目,重新绑定将不起作用。它在这里的原因是当单击上下文菜单时对话框可以顺利打开。

Ajax 设置搞砸了,但也让我的弹出窗口顺利打开:

<telerik:AjaxSetting AjaxControlID="rcMenu">
    <UpdatedControls>
        <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" LoadingPanelID="RadAjaxLoadingPanel1"></telerik:AjaxUpdatedControl>
    </UpdatedControls>
</telerik:AjaxSetting>

我的上下文菜单设置如下:

<telerik:RadContextMenu ID="rcMenu" runat="server" OnItemClick="rcMenu_ItemClick" EnableRoundedCorners="true" EnableShadows="true">
                <Items>
                    <telerik:RadMenuItem Text="Insert" Value="Insert"></telerik:RadMenuItem>
                    <telerik:RadMenuItem Text="Modify" Value="Edit"></telerik:RadMenuItem>
                    <telerik:RadMenuItem Text="Delete" Value="Delete"></telerik:RadMenuItem>
               </Items>
</telerik:RadContextMenu>

    <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true" VisibleOnPageLoad="true" EnableViewState="false">
    </telerik:RadWindowManager>

有谁知道任何变通方法,以便我可以顺利打开插入和更新对话框,并且当我调用 RadTreeList.Rebind(); 时删除页面仍会重新绑定树列表?

【问题讨论】:

  • 您可以在 javascript 中调用重新绑定。但我仍然不确定为什么删除不能与你在这里的东西一起工作。
  • 正在删除。除非我删除上面的 AjaxSetting,否则重新绑定不起作用。很可能是因为操作顺序是:右键TreeListRow,点击ContextMenu中的Delete,进入ContextMenu_ItemClick,因为是delete我们没有打开窗口所以AjaxSetting应该无关紧要,运行delete代码,尝试重新绑定treelist我什么也没得到,没有控制台错误。
  • 那么它是否对删除进行了完整的回发?

标签: telerik radajaxmanager telerik-ajax radtreelist


【解决方案1】:

请尝试以下代码 sn-p。

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="rcMenu">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" LoadingPanelID="RadAjaxLoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="RadTreeList" LoadingPanelID="RadAjaxLoadingPanel1" />
                <telerik:AjaxUpdatedControl ControlID="rcMenu" LoadingPanelID="RadAjaxLoadingPanel1" /> <%--Please remove this if not necessory--%>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

如果有任何问题,请告诉我。

【讨论】:

  • 非常感谢!!虽然我有一个关于 RadAjaxManager 的快速问题。为什么有时人们会设置一个 Ajax 设置,例如 RadGrid1,然后在其中设置一个 RadGrid1 的 AjaxUpdatedControl?和上面的例子一样(我知道你说如果没有必要就删除它)但是我们为什么要首先把它放在那里呢?我的猜测是,这是给单个控件本身赋予 ajax 功能的一种简单方法。
  • 此代码行显示当任何事件触发时,您必须更新 UI 中的某些控件。在标签 中定义的控件。我们没有在 Menu 中执行任何 CRUD 操作,因此无需在 中写入菜单控件 ID。根据您的要求,我们基于菜单点击我们正在更新 radwindow 和树列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 2016-05-20
相关资源
最近更新 更多