2013-05-17 73 views
1

是否有刷新關聯網格視圖的方法? 我在賬戶表格上有一個銷售訂單查看,在這個表格上我有一個按鈕(新訂單),打開一個新的銷售訂單表單,在這個表單中我做我的訂單, 問題是:當我保存我的訂單我想刷新我的訂單關聯視圖(在賬戶表單中),但我不知道如何獲取控制名稱或如何訪問它。 我嘗試了很多方法像Crm 2011:刷新關聯網格視圖

Xrm.Page.ui.controls.get("Orders").refresh(); 
    document.getElementById("areaOrders").contentWindow.location.reload(true); 

謝謝。

回答

1

這是一個javascript函數,我寫入強制子網格加載,如果窗體包含超過4個子網格。我相信,最近的彙總取得了代碼過時的目的,但它可能會有助於你找到你的子網格:

/* 
By default, CRM only loads the first 4 subgrids on a form. This will load 
up all subgrids on the form, or only the number (over the default 4) if specified 
*/ 
forceSubgridLoad: function (countOver4) { 
    $(document).ready(function() { 

     var links = $("a.ms-crm-List-LoadOnDemand"); 
     for (i = 0; i < links.length && (countOver4 == null || i < countOver4); i++) { 
      links[i].click(); 
     } 
    }); 
}, 
+0

但是是否可以從銷售訂單表格刷新賬戶表格上的銷售訂單關聯視圖? – wben

+0

@wben所以視圖不在實體形式的主要選項卡上? – Daryl

+0

現在,我有一個從帳戶表單打開的訂單表單,以及我在帳戶表單中打開的訂單表單 – wben

1

我已經在博客auto-refreshing a sub-grid in Microsoft Dynamics CRM
的解決方案是不支持的定製,以及基本上可以歸結爲這樣:

document.getElementById("crmGrid").control.refresh(); 

更換「crmGrid」與分格即要被刷新的DIV ID。

據我所知,沒有支持的方式來刷新。

3

要刷新一個子網格,您可以使用

Xrm.Page.getControl('new_subgrid').refresh(); 

然而,在我的經驗,這是非常錯誤(因爲RU12無論如何),所以請謹慎使用。您還需要檢查您檢索的控件的類型,並確保它是一個網格或將引發錯誤。

但是你問一個稍微不同的問題:

當我保存在我的訂單我想刷新我的訂單相關的示意圖(在開戶表格)

我理解到意味着您從帳戶表單中打開了一個訂單表單,並且希望刷新帳戶表單上的子網格。

簡單的答案是否定的,你不能以支持的方式做到這一點。

這可能是可能的,但它不會很漂亮。你需要得到一個參考打開的窗口中,可以在

window.opener 

可我還沒有試過,我不盈一臺機器的嘗試。但我會建議反對它,替代方法是單擊手動刷新子網格;這不是一個壞的選擇。

+0

您是對的,我有兩個表單帳戶表單希望我的銷售訂單有一個子網格,賬戶表格。我試過了(窗口。但它不適用於,如果無法進行刷新,Microsoft在添加例如新聯繫人或新帳戶時如何進行刷新,它會刷新子視圖。它必須是一種方法來做到這一點。就像你知道的那樣,當你打開一個新的訂單窗體時,你有一個保存按鈕,將你的數據插入到SalesOrderBase和SalesOrderExtensionBase表中,當你點擊這個按鈕時,子網關聯視圖會自動刷新。 – wben

+0

我改變了,因爲我想插入我的自定義數據,所以當我點擊保存按鈕時,我取消了代碼這個按鈕應該做什麼,我執行我的代碼,因爲sub_grid不刷新! – wben