0

我正在HtmlPage.Window.Navigate(Uri, "_blank");使用上下文菜单从网格行启动一个窗口,以进行特定于该行引用的页面的一些自定义编辑。我在银光中使用 Telerik-grid。当用户关闭该窗口时,我想刷新网格。我怎样才能做到这一点?

请分享一些想法,这可能吗?或者在哪里寻找开始解决这个问题?

更新:我正在使用 Silver-light MVVM模型。我从 silver-light 打开的子窗口是 web 浏览器,我实际上需要一种技术,当我关闭 web 浏览器时,我可以在 silver-light 应用程序中使用网格来刷新。此外,我正在使用RIA 服务来公开 Web 浏览器的方法。

4

1 回答 1

2

在您的 Silverlight 应用程序中公开一个可从 Javascript 访问的方法。

namespace SilverlightApplication
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();

            HtmlPage.RegisterScriptableObject("Page", this);            
        }

        [ScriptableMember]
        public void UpdateDataGrid()
        {
            myDataGridItemsReload(); // your routine
        }
    }
} 

然后在新打开的窗口中,可以在 Silverlight 实例上执行一个方法

<script>
    window.onunload = refreshParentGrid;
    function refreshParentGrid() {
        var hostDiv = window.opener.document.getElementById("silverlightControlHost");
        var control = hostDiv.children[0];           
        control.Content.Page.UpdateDataGrid();
    }
</script>
于 2012-09-28T04:29:00.227 回答