1

2 つの剣道 UI ウィンドウ コントロールがあります。検索ボタンとともに、顧客の詳細を取得するための最初の (親) ウィンドウ。顧客の名、姓などを使用して顧客を検索するための 2 番目の (子) ウィンドウ。

検索結果は、子ウィンドウのグリッド コントロールに表示されます。

役職 名 姓 住所1 Subrub
Mr John Karter Goyal garden, NSW
Miss Emile Watson Garden Brown, VC

グリッドで顧客を選択した場合、最初の (親) ウィンドウの対応するコントロールに顧客の詳細を入力する必要があります。だから私は以下のように変更イベントでjs関数を呼び出します

@(Html.Kendo().Grid((IEnumerable<OnlineABThemes.Data.GetCustomers_Result>)ViewData["CustomerSearchGrid"])
    .Name("ChildWindowCustomerGrid")
    .Columns(columns => {
        columns.Bound(p => p.ID).Visible(false);
        columns.Bound(p => p.Title).Width(60);
        columns.Bound(p => p.FirstName).Width(130);
        columns.Bound(p => p.LastName).Width(100);
        columns.Bound(p => p.Address1).Width(150);
        columns.Bound(p => p.Suburb).Width(80);
        columns.Bound(p => p.State).Width(80);
        columns.Bound(p => p.PostCode).Width(120);
        columns.Bound(p => p.Phone).Width(100);
        columns.Bound(p => p.Mobile).Width(100);
        columns.Bound(p => p.Email).Width(120);
    })
    .Sortable()
    .Scrollable()
    .Filterable()
    .DataSource(ds => ds.Server()
    .Model(model => model.Id(p=>p.ID))
)
.Selectable(s=>s.Mode(GridSelectionMode.Single))
.Events(events => events.Change("CustomerChanged"))
)

これが私のjs関数です

function CustomerChanged() {
    var grid = $('#ChildWindowCustomerGrid').data('kendoGrid');
    var customerID = grid.select("ID");

    $.ajax({<br>
        url: "/Customer/GetCustomer",
        type: "POST",
        data: { customerId: customerID }
    })

    $("#childWindow").data("kendoWindow").close();
    .fail(function (r, o) {
        alert("Failed : " + r.responseText);
    });
}

最初の (親) ウィンドウにある顧客 ID と顧客の詳細を入力する方法を取得できません。つまり、あるウィンドウから別のウィンドウに customerID を渡すことによって顧客の詳細を入力する方法です。

ありがとう
サントッシュ

4

1 に答える 1

0

あなたのコードに完全に従っているとは言えませんが、これは役立つかもしれません。Kendo ウィンドウ コントロールは 2 つのモードで動作します。1) 別の URL を iframe にロードするモードと、2) ウィンドウのように見える div にコンテンツをロードするモードです。window.opener最初のシナリオで作業している場合は、window.parentまたはwindow.top(何をしようとしているかによって異なります) を呼び出して、その方法で親ウィンドウへの参照を取得することにより、顧客 ID を返すことができます。2 番目のシナリオで作業している場合は、すべてのウィンドウでアクセス可能な現在の選択を格納するために、ある種のビュー モデルを使用できます。これによりいくつかのアイデアが生まれるかもしれませんが、コードをもう少し投稿していただければ、解決策についてより具体的になる可能性があります。

于 2012-10-13T03:24:39.317 に答える