这听起来很简单,但我整个上午都在为它而挣扎。
我有一个asp.Net页面和相应的代码后台页面。我的用户输入一个新密码,然后页面后面的代码检查它是否正常(足够长,一些正则表达式来检查不允许的字符,等等)。如果密码为OK,代码隐藏将执行sql查询以更新数据库。
如果查询成功,我希望隐藏密码输入div,并显示密码- successful -create div,这将为我的用户提供进一步的说明。我一直使用jQuery在php中很容易做到这一点。
我的问题:我刚才描述的工作都是在服务器端完成的。我可以使用ClientScriptManager (RegisterStartupScript)将适当的jQuery脚本发送回客户端。这很好,但是对服务器的回调将刷新页面,因此页面将刷新并恢复为原始外观。如果仔细观察,您可以看到div隐藏并以我想要的方式显示,但在不到一秒钟的时间内,它们又回到了原来的方式-我猜是因为回调正在刷新页面。
在执行对服务器的调用时,是否可以显示/隐藏代码后台页面中的DOM元素?任何帮助都是非常感谢的。
编辑
这是asp:button控件本身的问题。我在下面的代码中得到了相同的行为,它根本不使用后台页面的代码。如果我用普通的HTML输入控件替换asp:button控件,它就能正常工作。
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$('document').ready(function () {
$('.MyButton').click(function () {
$('#MyTable').toggle();
})
})
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button1" runat="server" Text="Button" class="MyButton" />
<table id="MyTable" >
<tr>
<td>This</td>
<td>is</td>
</tr>
</table>
</asp:Content>发布于 2013-05-07 05:15:52
在你的代码中使用类似这样的东西:
if (IsPostBack)
{
// show/hide elements you need based on the processing results
}这是假设要显示/隐藏的元素实际上是ASP.NET控件。如果没有,您可以始终将它们包含在<asp:Panel>控件中,并管理以这种方式显示的内容。
https://stackoverflow.com/questions/16407310
复制相似问题