繁体   English   中英

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

[英]Call JavaScript function after Telerik RadPageView finishes loading?

我正在使用Telerik UI for asp.net。 具体来说,我正在使用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。

我该怎么做呢?

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM