Telerik RadPageView 完成加载后调用 JavaScript 函数?

Posted

技术标签:

【中文标题】Telerik RadPageView 完成加载后调用 JavaScript 函数?【英文标题】:Call JavaScript function after Telerik RadPageView finishes loading? 【发布时间】:2015-12-08 15:31:30 【问题描述】:

我正在为 asp.net 使用 Telerik UI。具体来说,我将 RadTabStrip 与部分页面回发一起使用,以允许用户通过不同的数据集进行选项卡。当用户单击一个选项卡时,一些代码会执行并仅为该选项卡加载数据。

我已经弄清楚如何执行代码隐藏:我设置了 RadTabStrip 的 OnTabClick 属性,然后在代码隐藏中检查单击了哪个选项卡。

例如

protected void tab_Click(object sender, RadTabStripEventArgs e)
        
            if (e.Tab.Text == "Info")
            
                populateInfoTab();
            
        

private void populateInfotab()

    // Do some stuff

但是,我无法弄清楚如何在单击特定选项卡之后执行客户端 javascript。我尝试了什么: 设置OnClientTabSelected属性,然后添加一些javascript:

function tab_ClientClick(sender, args)

    var tab = args.get_tab();
    if(tab.get_text() == "Info")
    
        alert("Tab Clicked");
    

问题是我需要在被点击的页面视图中设置一些 div 的 Innerhtml被点击之后。页面加载时 div 不存在(特定的 RadPageView 被隐藏),所以我无法设置它。一旦用户点击进入选项卡,并在页面视图加载后,我需要能够通过 JavaScript 更新 div 的 InnerHtml。

我该怎么做呢?

【问题讨论】:

【参考方案1】:

第一个选项 - 如果您设置RenderSelectedPageOnly property to true,所有页面视图将在初始加载时呈现,您将能够使用 JS 查找/修改其中的元素。

第二个选项 - 只需在加载 UC 后立即从服务器设置内容,这通常会使事情变得更简单。

第三个选项 - 使用客户端事件(由本机 PageRequestManager 类或 RadAjaxManager 提供,取决于您如何设置 AJAX 交互)在收到响应时执行。这里的困难是确定您需要哪个回发。寻找所需的元素并仅在其存在时执行逻辑是您可以选择的最简单的标志。

第四个选项 - 从将调用您的函数的服务器代码中注册一个脚本,例如:

populateInfoTab();
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someKey", "myDesiredFunction()", true);

您可能希望使用 Sys.Application.Load 来确保它在 IScriptControl 初始化之后执行。

【讨论】:

以上是关于Telerik RadPageView 完成加载后调用 JavaScript 函数?的主要内容,如果未能解决你的问题,请参考以下文章

Telerik/ Kendo MVC Grid,按需加载网格,而不是页面加载

无法加载类型“Telerik.Windows.Documents.Packaging.DeflaterOutputStream”

Telerik 使用 Javascript 的自动完成框 textchanged 事件

将PDF从内存加载到telerik:RadPdfViewer

Telerik winform控件,Grid里的CellFormating加载图标导致界面很多单元格都有图标,界面非常乱?

更改 GridViewComboboxColumn 中的选定项目(Telerik,winforms)