0

私はASP.NETMVC3で作業しており、Telerikを使用しています。空のtelerikウィンドウがあります。私の目標は、ユーザーがボタンをクリックしたときにのみサーバーにコンテンツを要求することですが、これをどのように行うことができるかわかりません。これを実現するには、問題のtelerikウィンドウへの参照を保存する必要があると思います。しかし、どうすればこれを行うことができますか?plzヘルプ。これは私がどこまで得たかです:

@{
   Html.Telerik().Window()
   .Name("ImportDialog")
   .ClientEvents(events => events.OnOpen("DialogOpen"))
   .Visible(false)
   .Title("Import users")
   .Draggable(false)
   .Resizable(resizing => resizing.Enabled(false))
   .Modal(true)
   .Width(400)
   .Height(400)
   .Render();
}

DialogOpen関数で何かを実行したい、またはそのクライアント側関数をサーバー側関数に置き換えたい...。

4

2 に答える 2

1

Telerik ウィンドウのクライアント API、より具体的にはajaxRequestメソッドを使用する必要があります。

たとえば、ボタンがクリックされたときに、クライアント オブジェクトを取得し、その MVC アクション メソッドから Window にコンテンツを取得させる ajaxRequest メソッドを呼び出す必要があります。例えば

function DialogOpen(){
    var myWin= $('#ImportDialog').data('tWindow');
    myWin.ajaxRequest("Controller/Action", { name: "John",location:"Boston"});
}
于 2012-12-11T21:59:48.733 に答える
0

1 つのタイプの回答が見つかりましたが、それが最適かどうかはまだわかりません。

javascript 関数 DialogOpen で、ajax リクエストを URL (MVC ではコントローラーのアクションとも呼ばれます) に送信し、次のようにダイアログ ウィンドウのコンテンツに結果を配置します。

function DialogOpen () 
{
 $.ajax({
    type: "POST",
    url: "Controller/Action",
    data: "name=John&location=Boston",
    success: function (htmlContent) 
    {
        $('#ImportDialogContent').html(htmlContent);
    },
    error: function () 
    {
        $('#ImportDialogContent').html("<p>Could not import user data at this time</p>");
    }
 });
}

PS: telerik Window(ImportDialogContent) のコンテンツ領域に ID を付与しました!

于 2012-12-11T16:38:54.303 に答える