Ruwaldo Ответов: 1

Загрузки страницы aspx, который в див другой страницы aspx


Привет всем, у меня есть одна главная страница aspx с тегом div и еще одна простая страница aspx с некоторым текстом на ней. Как я могу сделать так, чтобы простая страница загружалась в div главной страницы при нажатии на ссылку? Это то, что я сделал до сих пор...
<head id="Head1" runat="server">
    <title>Untitled Page</title>
     <link rel="stylesheet" type="text/css" href="public_site/StyleSheet2.css" media="screen"/>

     <script type="text/javascript">
function load(link)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("mydiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","about.aspx?is_ajax=1&link="+link,true);
xmlhttp.send();
}
</script>

</head>

<body>
    <form id="form1" runat="server">
   <div class="bg">
    <img src="/public_site/img/background.png" alt="" />
    </div>
    <div class="menu">
     <ul>
    <li class="menu_link"><a href="home_page.aspx">HOME</a> |</li>
    <li> NEWS </li><li>|</li>
    <li style="color:#0B4C5F;"> ABOUT US</li> <li>|</li>
    <li> FAQ |</li>
    <li> DOWNLOADS |</li>
    <li> CONTACT US |</li>
    <li> RETAILERS |</li>
    <li> MEMBERS</li>
    </ul>
    </div>
    <div class="block">
     <ul class="menu2" style="text-align:center;">
    <li class="menu_link"><a href="about.aspx" style="cursor:pointer; color:#01DFD7;">Buying Club</a></li> <li style="color:#0B4C5F;">|</li>
    <li style="color:#0B4C5F;"><a onclick="load('1');" style="cursor:pointer;"> Network Marketing</a> |</li>
    <li style="color:#0B4C5F;"> Opportunity |</li>
    <li style="color:#0B4C5F;"> Ubuntu |</li>
    <li style="color:#0B4C5F;"> Affiliations |</li>
    <li style="color:#0B4C5F;"> Credentials </li>
    </ul>
    <hr />
    <div id="mydiv" class="content">
    <h3 class="header2">Imagine</h3>
    <p style="margin-left:8%;">
    A FULL grocery cupboard and fridge ALL the time, everything you want to enjoy and
    AFFORDING it!
    </p>
    <h3 class="header2">We have a plan</h3>
    <p style="margin-left:8%;">
    Bringing you an EXCELLENT CONCEPT, an AMAZING SERVICE and SAVINGS, allowing you to
    EARN.
    </p>
    <h3 class="header2">Who is DreamTeam buying club...</h3>
    <p style="margin-left:8%;">
    We are an independent marketing organisation based from the Eastern Cape in South
    Africa. Using technology and participating retailers to offer our members a wide range of
    products from which to purchase and receive rewards and rebates, linked to a
    business opportunity to build your own business helping you increase your income…
    </p>
    <h3 class="header2">What is DreamTeam buying club</h3>
    <ul style="margin-left:5.3%;">
    <li>A place for faily and friends to help one another.</li>
    <li>A place where people contribute to improving their and others lives.</li>
    <li>A place for cost effective and easy shopping.</li>
    <li>A safe place to put money aside every month for daily needs.</li>
    <li>A safe place keep to shopping money.</li>
    </ul>   
    </div>
    </div>
    </form>
</body>
</html>


И код за ним:

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["is_ajax"] != null)
        {
            Response.Clear();

            if (Request.QueryString["link"] == "1")
            {
                Response.Write("Hello World");
            }

            Response.End();
        }
    }


Это возвращает hello world в div главной страницы, как я могу заставить его вернуть простую страницу? Любая помощь будет очень признательна, заранее поблагодарив вас.

ZurdoDev

Вместо этого вы всегда можете использовать iframe.

BobJanova

Вы загружаете ответ AJAX в 'mydiv'. Вы имеете в виду, что содержание ответа также содержит все шаблонные и div-теги?

1 Ответов

Рейтинг:
1

Shelby Robertson

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

http://api.jquery.com/load/[^]

В вашем примере это было бы что-то столь же простое, как:

$("#mydiv").load("pageToLoad.aspx #container");


PageToLoad.aspx-файл:
pageToLoad.aspx:

<html>
    <body>
        <div id="container">
            <!--stuff goes here -->
        </div>
    </body>
</html>


Sergey Alexandrovich Kryukov

Это очень хорошая идея, только она может законно работать, если pageToLoad.aspx рендерит не "реальный" полный HTML, а его фрагмент, что-то, что делает действительный внутренний HTTP div, иначе он будет производить недопустимый HTML, например, вложенные элементы "html" и "body".

Так что я не знаю, соответствует ли это потребностям ОП. Это создает проблему, которую я объяснил, вопрос ОП просто недействителен, и это не ваша вина.

Итак, как я должен голосовать... поскольку вы предложили хорошую идею, но не объяснили, почему это может быть проблематично-4.

Овации,
--СА

Shelby Robertson

Наверное, я мог бы выразиться еще конкретнее. Лучшим примером был бы:

$("#mydiv").load("pageToLoad.aspx #container");

Где "контейнер" - это div, который обертывает допустимую часть страницы для загрузки. Это позволит обойти проблему недопустимого html, которую вы описываете.

Sergey Alexandrovich Kryukov

Ты хочешь сказать, что это просто <a name="container" /> должен ли он быть внутри div или снаружи (раньше или где-то еще)?
Не могли бы вы поместить это вместе с фрагментом загруженного HTML-кода в ответ, выбрав "улучшить решение"?
Я никогда этого не знал. Большое вам спасибо за это разъяснение, но я хочу попробовать...
--СА

Member 9588281

Я пытался вот так
$("#mydiv").load("pageToLoad.aspx #container");

моя страница выглядит так
<html>
<тело>
<div id="контейнер">
<!--вещи идут сюда -->
</div>
<идентификатор формы="rentDetails">
<!--вещи идут сюда -->
</форма>
</body>
</html>


В этом контейнере данные будут получены но данные формы не загружены

пожалуйста, предложите/помогите по этому вопросу как можно скорее.