私が取ったアプローチはhref
、AJAX リンクの を設定してから、メソッドを呼び出しload
てコンテンツをリロードすることです。
これが属性を使用していないことを理解していaria-controls
ますが、アップグレードガイドのスニペットには、この属性がパネルを指していると記載されています-リモートタブは、要素に含まれるアンカーに基づいてコンテンツを受け取るため、li
このアプローチを使用できるはずだと考えました.
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="Scripts/jquery-ui-1.9.2.custom/css/ui-lightness/jquery-ui-1.9.2.custom.min.css"
rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#tabs').tabs();
$('#change-button').click(function (event) {
$('#ajax-link').attr('href', 'Handler1.ashx?echo=changed at ' + new Date().toTimeString());
$('#tabs').tabs('load', 0);
event.preventDefault();
});
});
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="tabs">
<ul>
<li>
<a id="ajax-link" href="Handler1.ashx?echo=some text to repeat">Tab 1</a>
</li>
</ul>
</div>
<button id="change-button">Change</button>
</form>
</body>
</html>
渡されたテキストを単純にエコーバックする汎用HTTPハンドラー(これはAJAXリクエストです)を使用していますHandler1.ashx?echo=some text to repeat
。私のタブは、このハンドラーへの AJAX 呼び出しを行う 1 つのタブのみで構成されていることに注意してください。
URL を変更するにclick
は、ボタンのイベントを処理し、次href
のajax-link
ように変更してから再読み込みします。
$('#ajax-link').attr('href', 'Handler1.ashx?echo=changed at '
+ new Date().toTimeString());
$('#tabs').tabs('load', 0);
したがって、これを機能させるには、変更したいリンクを ID とともに提供する必要があり、タブ ページが発生する位置を知る必要があります。