用户控件中的ASP列表视图。用户控件完全加载后如何触发javascript?

时间:2012-08-10 13:44:47

标签: javascript listview user-controls loaded

我正在使用2个Usercontrols:

  • Search.ascx
  • Results.ascx

他们使用Telerik进行了ajaxfied,因为Search会更新Results控件。

我的实际问题是我想在Results控件中为生成的表实现DataTable。

如何在(重新)生成表后调用datatables jquery函数?

我在aspx页面中使用以下标记。如果我在搜索用户控件中单击搜索,结果将通过“结果”控件显示。请注意,结果usercontrol使用telerik进行divved / ajaxfied。

<telerik:radscriptmanager runat="server" id="RadScriptManager" />
<telerik:RadAjaxManager ID="RadAjaxManager" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="UcSearch">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="UcResults" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<uc1:ucSearch runat="server" id="UcSearch"></uc1:ucSearch>
<uc1:ucResults runat="server" id="UcResults"></uc1:ucResults>

1 个答案:

答案 0 :(得分:1)

问题是我们无法使用RadAjaxManager的OnResponseEnd客户端事件,因为当您解雇用户控件时,它不会引发。以下是Telerik论坛的链接:ajax panel ClientEvents-OnRequestStart wont fire。 但是,您可以强制RadAjaxManager在响应返回客户端后调用某些客户端脚本:ResponseScripts Property。所以你只需要在页面上放置另一个JavaScript函数来应用DataTables插件,如果你还没有它,并指示RadAjaxManager在刷新结果控件后调用这个函数。

void UcSearch_DoSearch(object sender, EventArgs e)
{
    // your code to update UcResults control 

    RadAjaxManager1.ResponseScripts.Add("initDataTable();");
}