2009-03-11 20 views
2

背景:スクリプト可能なメソッドを公開するSharepoint WebパーツにSilverlightコントロールがあります。これらのメソッドを使用してWebサービスを呼び出し、一連のメニューオプションを取得します。これらのメニューオプションは、リスト内の項目をクリックすると表示されるSharepoint ECBメニューに挿入されます。Sharepoint WebPartのSilverlightコントロールのクライアントID

私が抱えている問題は、JavascriptでsilverlightコントロールのclientIDを取得できるため、スクリプト可能メソッドを呼び出すために使用できます。このページには、同じSilverlightコントロールの複数のインスタンスとコントロール階層が異なる場合があります。

ここには、clientIDがハードコードされているクライアントサイドのJSコードがあります。私は次の関数を使用してのHiddenFieldとしてページ上に分離コードからプラグインIDを注入することになった

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

...

Page.ClientScript.RegisterHiddenField()。

私はJavaScriptを使って隠しフィールドの値を読みました。

0

ブログの投稿 "Passing Parameters Into Silverlight Applications"フォームJesse "Silverlight" Libertyがあなたの問題を解決するのに役立つと思います。

+0

これは非常に有益なリンクでした。しかし、それはSilverlightにパラメータを取得する方法を説明しています。私が私の答えで説明したように、私は隠れたフィールドにプラグインIDを注入し、その値を得るためにJavaScriptを使いました。 ありがとう:) –

+0

申し訳ありませんが、私はあなたの問題を理解しています。 – Flo

関連する問題