2012-01-13 6 views
2

Короче:Встраивание страницу ASPX с SilverLight приложения на другой странице

Как динамически вставлять страницы ASPX (MyAppHost.aspx) в другой странице (Default.aspx). MyAppHost.aspx принимает SilverLight приложение, которое считывает строку запроса из AppHost.aspx

Более подробно:

У меня было требование, чтобы динамически создавать графическое (растровое изображение) на основе выбранных на странице Default.aspx. Я сделал это, как показано ниже в Default.aspx.cs:

Image1.ImageUrl = "~/MakeImage.aspx?param1=" + 
Param1.ToString() + "&param2=" Param2.ToString(); 

В MakeImage.aspx:

image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 

Это работает отлично. Я внес изменения в проект, чтобы использовать silverlight для создания графики. Приложение Silverlight встроено в тестовую (по умолчанию) страницу aspx (MyAppHost.aspx) и предназначено для принятия строки запроса от MyAppHost.aspx, как показано ниже.

В MyApp.xaml.cs, у меня есть

if (HtmlPage.Document.QueryString.ContainsKey("param1")) 
{ 
     Param1 = HtmlPage.Document.QueryString["param1"]; 
} 

мне нужно динамически вставлять Silverlight приложение, MyApp (с хозяином MyAppHost.aspx?param1={0}&param2={1}) в Default.aspx на основе выбора пользователя в Default.aspx. Как это возможно?

EDIT: Как и было предложено, было бы намного проще, если бы я мог разместить приложение silverlight в Default.aspx и использовать параметры init, а не строки запроса. Я думал о подходе, но не мог понять, как динамически передавать параметры в событии. Я добавляю a new question.

+0

msdn.microsoft.com/en-us/library/cc838145(v=vs.95).aspx –

+0

Это не применимо в моем случае. Я отредактировал вопрос, чтобы уточнить. – devnull

+0

Если приложение Silverlight зависит от страницы MyAppHost.aspx, то как его загрузить в iframe по умолчанию .aspx? – rossisdead

ответ

1

Ваш единственный вариант, чтобы выполнить именно то, что вы просите, - использовать код JavaScript на сайте клиента, чтобы вставить IFrame с URL-адресом, указывающим на вашу страницу MyAooHost.aspx по мере необходимости.

Возможно, вам будет проще подобрать элемент управления Silverlight для ввода ввода из сценария страницы, чтобы считывать параметры из строки запроса - таким образом вам просто нужно добавить свой элемент управления SL на исходную страницу и обновить свойства при изменении пользовательского выбора (намного быстрее, чем перезагрузка кадра с помощью SL-управления).

+0

Да, этот подход будет проще. Параметры, которые должны быть переданы в приложение silverlight, генерируются на основе пользовательских входов на странице «Default.aspx». Любая идея, как динамически загружать приложение silverlight с помощью 'InitParameters' на основе пользовательских настроек. – devnull

+0

Эти статьи должны охватывать его - http://msdn.microsoft.com/en-us/library/cc645076%28v=VS.95%29.aspx –

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