在Telerik RadPageView完成加载后调用JavaScript函数
本文关键字:调用 JavaScript 函数 加载 Telerik RadPageView | 更新日期: 2023-09-27 18:12:20
我正在使用asp.net的Telerik UI。具体来说,我正在使用带有部分页面回发的RadTabStrip,以允许用户通过不同的数据集进行制表。当用户单击一个选项卡时,执行一些代码并加载该选项卡的数据。
我已经知道如何执行代码隐藏:我设置了OnTabClick属性的RadTabStrip,然后在代码隐藏我检查什么选项卡被点击。
。
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);