あなたは(ちょうど<div>'s
HTMLである)パネルを表示し、非表示にするjQueryのを使用することができます。それは可能性をスライドさせ、サーバーへの往復を節約します。あなたが原因Panel1
内のコンテンツのポストバックを行う必要がある場合に行うとき
<asp:Panel ID="Panel1" runat="server" style="display: none;">
content
</asp:Panel>
<input type="button" value="Slide Panel" onclick="slidePanel('<%= Panel1.ClientID %>')" />
<script type="text/javascript">
function slidePanel(div) {
if ($('#' + div).css('display') == 'none') {
$('#' + div).slideDown('medium', function() { });
} else {
$('#' + div).slideUp('medium', function() { });
}
}
</script>
はしかし、あなたはslidePanel
関数を呼び出すことができます。
protected void Button1_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
//set the dom visibility to none
Panel1.Attributes.Add("style", "display:none");
//call the function to slide the panel open
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "slidePanel", "slidePanel('" + Panel1.ClientID + "')", true);
//or with a 1 second delay (1000 ms)
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "slidePanel", "setTimeout(function() { slidePanel('" + Panel1.ClientID + "'); }, 1000);", true);
}
まず最初は、私にはうまくいきましたが、閉じるボタンをクリックすると元に戻すこともできます。どのように達成できますか? –
全く同じことをすることによって。 'slidePanel'関数は、divが開いているか閉じているかをチェックし、再び上にスライドすることによって逆にします。あなたがPostBackでそれをしたいのであれば、 'Panel1.Attributes'を' display:block'に変更しなければなりません – VDWWD