2012-08-28 49 views
1

我有兩個kendo UI窗口控件。首先(父母)窗口獲取客戶詳細信息以及搜索按鈕。第二(子)窗口中使用客戶名字,姓氏等搜索客戶..如何在兩個kendo UI窗口控件之間傳遞數據

搜索結果將顯示在子窗口的電網控制,如

標題名姓地址1 Subrub
先生約翰Karter戈亞爾花園,新南威爾士州
小姐埃米爾·沃森花園棕,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,如何填補客戶的細節是在第一(父)窗口。即,l如何通過將customerID從一個窗口傳遞到另一個窗口來填充客戶詳細信息。

感謝
Santhosh

回答

0

我不能說我完全按照你的代碼,但是這可能會有所幫助。 Kendo窗口控件有兩種操作模式:1)通過在iframe中加載另一個URL,以及2)通過將內容加載到看起來像窗口的div中。如果您正在處理第一種情況,則可以通過調用window.opener,window.parentwindow.top(取決於您正在嘗試執行的操作)並以這種方式獲取父窗口的引用來傳回客戶ID。如果您在第二種情況下工作,則可以使用某種視圖模型來存儲可在所有窗口中訪問的當前選擇。也許這會引發一些想法,但是如果你多發佈一些代碼,我可能會更具體地瞭解一個解決方案。

相關問題