Jquery用asp.net回发隐藏

时间:2012-07-23 14:28:24

标签: c# javascript jquery asp.net .net

我有以下代码.....

<head>
<script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="Scripts/hidepanel.js" type="text/javascript"></script>
</head>
<body>
    <div id="outboundForm">
    <p>
        <asp:Button ID="btnSubmit" ClientIDMode="Inherit" runat="server" TabIndex="17" CssClass="btnSubmit"
            OnClick="btnSubmit_Click" meta:resourcekey="btnSubmitResource1" />
        <asp:Button ID="btnReset" runat="server" CssClass="btnReset" OnClick="btnReset_Click"
            meta:resourcekey="btnResetResource1" />
    </p>
</div>
<div id="MailPreviewDiv">
    <asp:Label ID="lblPreview" runat="server" Visible="false" Text="" />
</div>

我的hidepanel.js看起来像这样......

$(document).ready(function () {
    d = new Date();
    d = d.getTime();
    if ($('#reloadValue').val().length == 0) {
        $('#reloadValue').val(d);
        $('#MailPreviewDiv').
    } else {
        $('#reloadValue').val('');
    }

    $('#MainContent_btnSubmit').click(function () {
        $('#outboundForm').hide("slow");
        $('#MailPreviewDiv').show("slow");
    });
});

现在,默认情况下,我希望MailPreviewDiv隐藏,只有当我点击btn_submit时才能看到MailPreviewDiv。这可以用传统的HTML工作,但是只要我将它添加到.NET就会发生疯狂的事情。当我点击提交时,我可以看到转换发生,但随后我仍然显示两个div仍然显示,outboundForm div仍然可见。

我观察到的是,javascript甚至被解雇,然后我的.net鼠标点击甚至被触发后,我可以看到一个过渡,并留下两个div可见。任何人都可以提供一些建议......

这可能与部分回发事件有关,但我不确定......

2 个答案:

答案 0 :(得分:1)

您的页面正在执行回发,因此所有html元素都会立即松开jquery效果。在使用RegisterStartupScript进行回发之后,您需要在服务器端注册js代码 http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

答案 1 :(得分:0)

也许尝试将outboundForm设置为runat =“server”,并在服务器端设置它的可见性为false。

<div runat="server" id="outboundForm" >

代码隐藏

outboundForm.Visible = false;

似乎JS运行正常,但服务器正在重新加载回发上的隐藏div。

你的JS有一个语法错误$('#MailPreviewDiv')。 &lt; - 不完整

但我认为那是因为你在这里简化发布。