Как использовать фрейм на странице ASP.NET?

Как правильно использовать фрейм на странице asp.net, чтобы у меня был левый фрейм и правый фрейм, когда я нажимаю ссылки на странице, представленной в левом фрейме, загружается соответствующая страница в правом фрейме? Кроме того, мне нужно иметь главную страницу на всех страницах правильного фрейма.

Как мне это сделать? или есть другой способ добиться того же эффекта?

Спасибо, Рэй.

12.12.2008 23:57:56
4 ОТВЕТА

Фреймы обычно не одобряются в современной веб-разработке по нескольким причинам (я не буду вдаваться в них здесь). Вам лучше использовать CSS, чтобы сделать макет из 2 столбцов. Есть много хороших учебных пособий о том, как сделать такие макеты по всей сети. Один пример можно найти здесь:

http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/

Пример на этом сайте выглядит так:

http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/finished.html

Если вы хотите, чтобы макет помещался на экране, просто определите высоту для #main. Вам просто нужно добавить это в свой CSS после того, как вы закончите:

#main{height:600px}

Измените «600px» на любую высоту, какую хотите, если она вам не подходит.

Чтобы использовать его на главной странице, просто сделайте свою главную страницу следуя приведенному выше примеру, а затем сделайте внутреннюю часть #main <div />тега своим основным ContentPlaceholder

3
13.12.2008 00:13:43
Одна вещь, которую я не мог понять с помощью макета столбца CSS div 2, как вы можете получить высоту столбцов для точного исправления прямо в браузере?
Ray 13.12.2008 00:15:23
Это на самом деле очень распространенная проблема. Решение немного более продвинутое, но оно может быть решено. Зайдите сюда, чтобы увидеть, как: alistapart.com/articles/fauxcolumns
Dan Herbert 13.12.2008 01:04:29
Yay к поддельному изображению bg. Грустно ли, что я узнаю эту ссылку много лет назад?
Min 13.12.2008 05:22:56

Короткий и сладкий ответ?

Фреймы и наборы фреймов больше не нужны и не полезны в веб-разработке, и они создают гораздо больше проблем, чем решают.

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

Есть три вещи, которые вы, вероятно, используете для помощи фреймов:

1) Вы хотите иметь панель навигации слева и отдельную область содержимого справа, в основном вертикальное разделение.

Безрамное решение:

Используйте обычный HTML и CSS для создания 2-х колоночного макета. Посмотрите некоторые другие ресурсы или « Последнее руководство по макету CSS, которое вам когда-либо понадобится ».

2) Вы хотите иметь один файл с навигацией, который не обязательно должен иметь версию на нескольких разных страницах.

Безрамное решение:

Сохраните навигацию в отдельном файле и просто включите ее во все свои страницы контента. В ASP.NET вы можете создать файл UserControl или .ascx и включить его во все ваши изменения. Поместите вашу навигацию в UserControl, и вам нужно всего лишь изменить ее в одном месте.

3) Требуется более быстрая работа только с фреймом контента, который необходимо перезагрузить, а не с фреймом навигации.

Безрамное решение:

Дополнительное время для загрузки всей страницы ничтожно мало, а простота обслуживания одного документа за раз более чем компенсирует незначительное снижение производительности.

0
13.12.2008 01:13:31

Ага. Рамки злые. Вы не должны действительно использовать их.

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

Но в любом случае, видя, как вы спросили, как их использовать, здесь мы идем

Во-первых, это зависит от того, хотите ли вы использовать набор фреймов или просто поместить несколько фреймов на страницу, если фреймы могут быть проще, но опишут набор фреймов. Некоторые ссылки ниже. Если вы покопаетесь на машине обратного пути на archive.org, вы увидите несколько примеров, а также онлайн-документы Sun по java, которые раньше были в наборах фреймов, но годами не рассматривали их.

http://www.w3schools.com/tags/tag_frameset.asp
http://www.w3schools.com/tags/tag_iframe.asp

По сути, содержимое каждого фрейма - это отдельные страницы, и сами фреймы должны быть названы в файле, который содержит набор фреймов, который может выглядеть примерно так:

<html>
<frameset cols="25%,75%">
  <frame name="_left" src="nav.aspx" />
  <frame name="_right" src="foo.aspx" />
</frameset>
</html>

Итак, ради упражнения дайте атрибуту левой рамки name = "__ left" и name = "__ right" справа.

Важные сведения о ссылках
Любые ссылки внутри вашего правого фрейма, которые должны быть нацелены на этот фрейм, должны иметь target = "_self", а любые ссылки, которым необходимо экранировать фрейм и указать местоположение родительской страницы, должны иметь target = "_ top".

Ссылки в вашем левом фрейме должны иметь атрибут target = "_ right", и это должно загрузить соответствующий документ в правый фрейм при нажатии на ссылку.

В остальном это в значительной степени нормально, рассматривайте содержимое фрейма правой руки как обычную страницу, делайте мастер-страницу как обычную, все обычные html, head, body тэги и т. Д. В фреймах aspnet нет ничего особенного PHP или что-нибудь еще, это просто HTML.

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

Итак, они злые, но это не должно помешать вам узнать о них, вы действительно поймете, почему они злые, и сформируете свое собственное мнение относительно того, когда и когда их не использовать.

5
13.12.2008 03:03:07

Вы можете поместить код iframe в раздел body. пример приведен ниже. попробуй это :)

<iframe width="100%" height="600px" scrolling="no" seamless="yes" src="https://facebook.com"></iframe>
0
15.06.2013 08:10:45