Вот то, что я пытаюсь сделать в ASP.NET:
Создайте одну страницу по имени Main.aspx. Эта страница имеет DIV и кнопки.
Браузер загружает Main.aspx. Тогда, когда я нажимаю кнопку, я хочу загрузить страницу Page99.aspx в DIV в Main.aspx динамично, но без Main.aspx требование обратной передачи.
Так, загрузки Main.aspx однажды, и после этого все содержание, отображенное в Main.aspx, прибудут из различных .aspx страниц.
Ps. Я ищу решение как выше, но не использую кадры.
ОБНОВИТЕ 1, я должен упомянуть, что Page99 не является простой страницей HTML. Это будет содержать Веб-элементы управления.
Насколько я знаю, запретите использование iframes, нет способа загрузить одну страницу ASPX в другую.
С отложениями или AJAX вы можете использовать USERCONTROLS (ASCX) вместо этого. Они могут содержать почти одно и то же контент, который может в любом случае, или использовать шестерскую страницу.
Если вы хотите иметь никаких обратных отложений, AJAX, вероятно, способ пойти, хотя он снова не позволяет загружать страницу ASPX в другую, только для изменения содержимого страницы, которую вы включены (среди других вещи).
Я не уверен в других платформах для веб-разработки, хотя у них может быть ближе к тому, что вы хотите сделать, так что если ASP.NET не является «Должен», вы должны рассмотреть возможность проверки других платформ.
Если вы не хотите использовать 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>
Если вы используете инструментарий AJAX, должно быть возможно сделать это с помощью веб-контакта, а не на странице ASPX.
Если вы попытаетесь использовать эту идею с помощью страниц ASPX, и без использования iFrame вы обнаружите, что не предусмотрено выделение для именей для переменной JavaScript и идентификаторы элементов, поэтому почти гарантируют конфликты, если вы поместите содержимое отображения ASPX div использует innerhtml; Страница определенно не сможет выполнить частичную информацию, как я думаю, вы хотели бы.
Использование WebControl вместо этого: лучшее решение будет установить инструментарий AJAX, если вы еще не имеете уже, и используете элемент управления UpdatePanel. Либо динамически загружайте и разгрузите WebControls внутри этой панели (с помощью LoadControl ()) или поместите элемент управления MultiView внутри него и измените ActiveView для моделирования изменения этого контента.
UPDATEPANEL позволит свое содержимое обновлять без полной записи (страницы обновления).
Может быть, я что-то упускаю. Но вы можете использовать Uframe в этом случае.
http://msmvps.com/blogs/omar/Archive/2008/05/24/uframe-goods-of-updatePanel-and-iframe-combined.aspx
Я бы подумал, что вы можете сделать это, используя AJAX и веб-метод на сервере.
Кнопка (ы) на странице вызывает веб-метод, используя AJAX, с различными аргументами для правильной страницы, чтобы загрузить в Div. Интернет веб нагружает правильную страницу, используя обычный веб-запрос.
Например:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://servername/filename.aspx");
WebResponse response = request.GetResponse();
Затем этот метод вернет HTML, генерируемый файлом ASPX обратно к клиенту. Когда клиент получает обратный вызов, он может некомить HTML и поместить его в div.
Например:
var startOfHTML = response.indexOf('<');
var endOfHTML = response.indexOf('</string>');
response = response.substring(startOfHTML, endOfHTML);
response = response.replace(/</g, "<");
response = response.replace(/>/g, ">");
var div = document.getElementById("myDIV");
div.innerHTML = response;