2008-11-05 4 views
0

Например:Как сделать элемент управления ASP.NET поговорить с Silverlight приложения на той же странице в C#

Во-первых, что у меня есть Silverlight приложение с безоконное = истинное, так что я могу разместить ASP.NET контроль над ним. Затем я помещаю на страницу кнопку ASP.NET. Как я могу сказать, что текст элемента управления в приложении Silverlight изменяется, когда пользователь нажимает кнопку ASP.NET? Как я могу отправить приложение Silverlight сообщение об обновлении с кодом C#, которое ловит кнопку Click ASP.NET?

Спасибо, Джефф

ответ

1

Из того, что я могу сказать, основываясь на свой вопрос, то Silverlight приложение работает в веб-браузере, и вы его встраивается в страницу asp.net? Код кнопки asp.net, который вы перетаскиваете на странице, живет на сервере и отправляется в веб-браузер в виде html. Когда вы нажимаете кнопку на странице, она возвращает данные формы на сервер, который 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

1

Из памяти, необходимо выставить поддерживающее сценарии элемент из приложения 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.

Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^