3

私は非常に単純なシナリオのように見えるもので立ち往生しています:modelIdクライアント側の js によって提供される動的パラメーターを使用して、モデルにバインドされた部分ビューを使用して剣道ウィンドウをロードします。

メソッドについてはわかりましたrefresh()が、これはすでに剣道ウィンドウが初期化されていることを意味します。それが最初の問題です。modelIdコンテンツを表示するには が必要です。したがって、私はこの問題を回避し、新しいモデルを最初に返しました。これは、refresh()メソッド + 有効なパラメーターによって置き換え/更新され、modelId最終的に表示される必要があります。問題: ビューが更新されません。ただし、このrefresh()方法は実際に機能します。コントローラーはパラメーターを受け取り、modelId対応するモデルを取得してビューを返します。しかし、剣道ウィンドウにはまだ空のビューモデルが保持されています。

私はこれを機能させるために本当に一生懸命努力しましたが、成功しませんでした..

@(Html.Kendo().Window()
      .Name("window")
      .Title("")
    //loads an empty viewmodel intially as there is no possibility to pass parameter
      .LoadContentFrom("Actionname", "Controller")          
      .Actions(actions => actions.Close())
      .Modal(true).Visible(false)
      .HtmlAttributes(new {style = "margin: 10px"})
      )

Javascript スニペット:

$("#window").data("kendoWindow").refresh({
    url: '/controller/actionname/',
    data: { parameterlabel: parameter}
});
$("#window").data("kendoWindow").open().center(true);
4

3 に答える 3

3

..私が間違っていたのでしょうか?refresh()メソッドは、そもそもコンテンツを含む完全にロードされた剣道ウィンドウを実際には必要としませんか? テレリクのページでこれを見つけました:「ウィンドウにコンテンツを動的に(AJAXを介して)ロードしたい場合は、次の方法で実行できます。

//set up kendo window
$(document).ready(function () {
     var window = $("#window").kendoWindow({
         height: "200px",
         modal: true,
         title: "Centered Window",
         visible: false,
         width: "200px"

     }).data("kendoWindow");
 });
//using the refresh method after the window has been intialized:
var dialog = $("#window").data("kendoWindow");
dialog.refresh({
    url: "/search",
    data: { query: "foobar" }
}); "

..更新に期待するものとは異なりますが、大丈夫です..だから、作成された剣道ウィンドウでロードコンテンツを削除する必要があるかもしれません:

@(Html.Kendo().Window()
.Name("window")
.Title("")
//.LoadContentFrom("Actionname", "Controller", new { modelID = modelId })          
.Actions(actions => actions.Close())
.Modal(true).Visible(false)
.HtmlAttributes(new {style = "margin: 10px"})
)
于 2016-03-19T11:43:12.363 に答える