1

私は2つのユーザーコントロールを使用しています:

  • Search.ascx
  • Results.ascx

それらは、検索が結果コントロールを更新するという点でTelerikを使用してajaxfiedされます。

私の実際の問題は、結果コントロール内に生成されたテーブルのDataTablesを実装したいということです。

テーブルが(再)生成された後、どうすればdatatables jquery関数を呼び出すことができますか?

私はaspxページで次のマークアップを使用しています。検索usercontrol内で検索をクリックすると、結果が結果コントロールを介して表示されます。結果のusercontrolは、telerikを使用して分割/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クライアントイベントを使用できないことです。これは、ユーザーコントロールをajax化したときに発生しないためです。Telerikのフォーラムからのリンクは次のとおりです。ajaxパネルClientEvents-OnRequestStartは起動しません。ただし、応答がクライアントに返された後、RadAjaxManagerにクライアント側のスクリプトを呼び出すように強制することができます:ResponseScriptsProperty。したがって、必要なのは、別の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 に答える