Как заставить ASP.NET Control общаться с приложением Silverlight на той же странице в C # - PullRequest
0 голосов
/ 05 ноября 2008

Например:

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

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

Ответы [ 2 ]

1 голос
/ 05 ноября 2008

Из памяти вам необходимо предоставить доступ к элементу сценария из вашего приложения 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");
}

Затем просто подключите кнопку клиента, чтобы вызвать метод ChangeText из JavaScript.

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

1 голос
/ 05 ноября 2008

Из того, что я могу сказать, основываясь на вашем вопросе, приложение 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

...