Я бы попытался решить эту проблему, используя http://docs.jquery.com/UI/Accordion и http://pjax.heroku.com/ ...
Что-то вроде
<div id="accordion">
<h3><a href="#">pane1</a></h3>
<div>
<ul id="persons">
<li><a href="person1.aspx">Person 1</a></li>
<li><a href="person2.aspx">Person 2</a></li>
<li><a href="person3.aspx">Person 3</a></li>
</ul>
</div>
<h3><a href="#">Life Details</a></h3>
<div>
Some content here
</div>
<h3><a href="#">Home Details</a></h3>
<div>
Some content here
</div>
<h3><a href="#">Job Details </a></h3>
<div>
Some content here
</div>
</div>
Для разметки. Тогда ваш JavaScript должен быть что-то вроде
<script src="jquery.min.js"></script>
<script src="jquery.cookie.js"></script>
<script src="jquery-ui.min.js"></script>
<script src="jquery.pjax.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#accordion").accordion();
$('.persons').pjax('#accordion');
});
</script>
И в вашем aspx вы проверяете заголовок HTTP_X_PJAX
(см. xhr.setRequestHeader('X-PJAX', 'true')
), и если он присутствует, вы визуализируете только <div id="accordion">
для выбранного элемента (без мастер-страницы, просто div
), если он отсутствует, вы отображаете всю страницу (с Masterpage).