簡體   English   中英

如何在C#的同一頁面上使ASP.NET Control與Silverlight應用程序對話

[英]How do you make a ASP.NET Control talk to a Silverlight app on the same page in C#

例如:

首先,假設我有一個Silverlight應用程序,其Windowless = true,以便可以將ASP.NET控件放在其頂部。 然后,在頁面上放置一個ASP.NET按鈕。 當用戶按下ASP.NET按鈕時,如何說出Silverlight應用程序中控件的文本發生變化? 我如何從C#代碼向Silverlight應用發送更新消息,以捕獲ASP.NET按鈕的單擊?

謝謝傑夫

據我所知,根據您的問題,Silverlight應用程序正在Web瀏覽器中運行,並且已將其嵌入到asp.net頁面中? 您在頁面上拖動的asp.net按鈕的代碼位於服務器上,並以html格式發送到Web瀏覽器。 當您單擊頁面上的按鈕時,它會將表單數據提交回由ASP.NET解釋並調用您的按鈕單擊代碼的服務器。 由於該代碼正在服務器上執行,因此無法訪問Silverlight應用程序。 如果確實需要直接在客戶端上與silverlight應用程序進行交互,則可以在瀏覽器中使用javascript。

這是一個基本示例: http : //blogs.vertigo.com/personal/ralph/Blog/archive/2008/05/15/call-silverlight-from-javascript-call-javascript-from-silverlight.aspx

從內存中,您需要從Silverlight應用程序中公開可編寫腳本的成員,例如:

[ScriptableMember()]
public void ChangeText(string newText)
{
    // Update your text control here
}

並在構造器中將其注冊以從javascript編寫腳本:

public MySilverlight()
{
    InitializeComponent();
    HtmlPage.RegisterScriptableObject("MyObject", this);
}

然后您可以從javascript中調用它;

function ChangeText()
{
    var yourObject = getElementById("yourObjectID");
    yourObject.Content.MyObject.ChangeText("New Text");
}

然后只需連接按鈕的客戶端單擊以調用javascript ChangeText方法。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM