背景:我在sharepoint webpart中有一个Silverlight控件,它公开了一些可编写脚本的方法。我使用这些方法调用webservice并获取一系列菜单选项。然后将这些菜单选项注入Sharepoint ECB菜单,该菜单在单击列表中的项目时显示。
我遇到的问题是能够在Javascript中获取silverlight控件的clientID,然后我可以用它来调用脚本化方法。这将打开的页面可能有多个相同silverlight控件的实例,以及控件层次结构可能不同....
这是我目前拥有的客户端JS代码,其中clientID是硬编码的......
function TestQueryMenu() {
var plugin = document.getElementById('ctl02_IntuitionModelBrowserControl');
var contextUri = document.getElementById('TestUri').value;
var key = contextUri;
plugin.Content.ModelBrowser.GetContextMenuOptionsCompleted = MenuItemsReceived;
plugin.Content.ModelBrowser.GetContextMenuOptionsAsync(key, contextUri);
}
答案 0 :(得分:0)
我最终使用以下函数将代码隐藏中的PLugin ID作为隐藏字段注入到页面中...
Page.ClientScript.RegisterHiddenField()。
然后我使用javascript来读取隐藏字段的值。
答案 1 :(得分:0)
我认为博客帖子“Passing Parameters Into Silverlight Applications”形成Jesse先生“Silverlight”Liberty可以帮助您解决问题。