1

我正在使用 2 个用户控件:

  • 搜索.ascx
  • 结果.ascx

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

我的实际问题是我想在结果控件中为生成的表实现 DataTables。

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

我在我的 aspx 页面中使用以下标记。如果我在搜索用户控件中单击搜索,则结果将通过结果控件显示。请注意,结果用户控件使用 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>
4

1 回答 1

1

问题是我们不能使用 RadAjaxManager 的OnResponseEnd客户端事件,因为当您 ajaxifying 用户控件时它不会引发。这是 Telerik 论坛的链接:ajax 面板 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();");
}
于 2012-08-13T10:29:38.017 回答