Как отобразить ASPX в DIV другого ASPX динамично во времени выполнения?

Вот то, что я пытаюсь сделать в ASP.NET:

Создайте одну страницу по имени Main.aspx. Эта страница имеет DIV и кнопки.

Браузер загружает Main.aspx. Тогда, когда я нажимаю кнопку, я хочу загрузить страницу Page99.aspx в DIV в Main.aspx динамично, но без Main.aspx требование обратной передачи.

Так, загрузки Main.aspx однажды, и после этого все содержание, отображенное в Main.aspx, прибудут из различных .aspx страниц.

Ps. Я ищу решение как выше, но не использую кадры.

ОБНОВИТЕ 1, я должен упомянуть, что Page99 не является простой страницей HTML. Это будет содержать Веб-элементы управления.

11
задан Liao 20 January 2010 в 06:09
поделиться

5 ответов

Насколько я знаю, запретите использование iframes, нет способа загрузить одну страницу ASPX в другую.

С отложениями или AJAX вы можете использовать USERCONTROLS (ASCX) вместо этого. Они могут содержать почти одно и то же контент, который может в любом случае, или использовать шестерскую страницу.

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

Я не уверен в других платформах для веб-разработки, хотя у них может быть ближе к тому, что вы хотите сделать, так что если ASP.NET не является «Должен», вы должны рассмотреть возможность проверки других платформ.

4
ответ дан 3 December 2019 в 09:41
поделиться

Если вы не хотите использовать IFRAMES, вы можете очень хорошо использовать элемент объекта HTML. Следуйте здесь, чтобы увидеть и пример HTML. Вы можете очень хорошо использовать это для ASPX также с некоторыми изменениями, например, использование свойства OnClientClick для кнопки ASPX и т. Д.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>mouseover image position</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />

<style type="text/css">
/*<![CDATA[*/
body
   {
    background-color:#aaaaff;
   }
#one
   {
    position:absolute;
    left:50%;
    top:50%;
    margin:-150px 0 0 -250px;
   }
object
   {
    width:500px; 
    height:300px; 
    border:solid 1px #000000;
   }
 /*//]]>*/
</style>

<script type="text/javascript">
//<![CDATA[
// written by: Coothead
function updateObjectIframe(which){
    document.getElementById('one').innerHTML = '<'+'object id="foo" name="foo" type="text/html" data="'+which.href+'"><\/object>';
}

//]]>
</script>

</head>
<body>

<div id="one">
<object id="foo" name="foo" type="text/html" data="http://www.w3schools.com/"></object>
</div>
<div>
<a href="http://www.google.com" onclick="updateObjectIframe(this); return false;">this is an object test not an iframe test</a>
</div>

</body>
</html>
6
ответ дан 3 December 2019 в 09:41
поделиться

Если вы используете инструментарий AJAX, должно быть возможно сделать это с помощью веб-контакта, а не на странице ASPX.

Если вы попытаетесь использовать эту идею с помощью страниц ASPX, и без использования iFrame вы обнаружите, что не предусмотрено выделение для именей для переменной JavaScript и идентификаторы элементов, поэтому почти гарантируют конфликты, если вы поместите содержимое отображения ASPX div использует innerhtml; Страница определенно не сможет выполнить частичную информацию, как я думаю, вы хотели бы.

Использование WebControl вместо этого: лучшее решение будет установить инструментарий AJAX, если вы еще не имеете уже, и используете элемент управления UpdatePanel. Либо динамически загружайте и разгрузите WebControls внутри этой панели (с помощью LoadControl ()) или поместите элемент управления MultiView внутри него и измените ActiveView для моделирования изменения этого контента.

UPDATEPANEL позволит свое содержимое обновлять без полной записи (страницы обновления).

1
ответ дан 3 December 2019 в 09:41
поделиться

Может быть, я что-то упускаю. Но вы можете использовать Uframe в этом случае.

http://msmvps.com/blogs/omar/Archive/2008/05/24/uframe-goods-of-updatePanel-and-iframe-combined.aspx

0
ответ дан 3 December 2019 в 09:41
поделиться

Я бы подумал, что вы можете сделать это, используя AJAX и веб-метод на сервере.

Кнопка (ы) на странице вызывает веб-метод, используя AJAX, с различными аргументами для правильной страницы, чтобы загрузить в Div. Интернет веб нагружает правильную страницу, используя обычный веб-запрос.

Например:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://servername/filename.aspx");
WebResponse response = request.GetResponse();

Затем этот метод вернет HTML, генерируемый файлом ASPX обратно к клиенту. Когда клиент получает обратный вызов, он может некомить HTML и поместить его в div.

Например:

var startOfHTML = response.indexOf('&lt;');
var endOfHTML = response.indexOf('</string>');

response = response.substring(startOfHTML, endOfHTML);
response = response.replace(/&lt;/g, "<");
response = response.replace(/&gt;/g, ">");

var div = document.getElementById("myDIV");
div.innerHTML = response;
0
ответ дан 3 December 2019 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: