我正在使用2个Usercontrols:
他们使用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>
答案 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();");
}