这听起来很容易,但我整个上午都在苦苦挣扎。
我有一个asp.Net页面和相应的代码页面。我的用户输入一个新密码然后页面后面的代码检查它是否正常(足够长,一些正则表达式检查不允许的字符等)。如果密码正常,则后面的代码执行sql查询以更新数据库。
如果查询成功,我想隐藏密码输入div并显示密码成功创建div,这为我的用户提供了进一步的说明。我总是使用jQuery在php中轻松完成这个。
我的问题:我刚才描述的工作都是在服务器端完成的。我可以使用ClientScriptManager(RegisterStartupScript)将适当的jQuery脚本发送回客户端。精细和花花公子,但回调到服务器刷新页面,所以页面刷新并恢复到原始外观。如果你仔细观察,你可以看到div隐藏并显示我想要的方式,但在不到一秒的时间内它们会回到它们最初的方式 - 我假设因为回调正在刷新页面。
在执行对服务器的调用时,是否可以在页面后面的代码中显示/隐藏DOM元素?任何帮助表示赞赏。
修改
这是asp:按钮控件本身就是问题。我在下面的代码中得到了相同的行为,它根本不使用代码隐藏页面。如果我用普通的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>
答案 0 :(得分:0)
在你的代码中使用类似的东西:
if (IsPostBack)
{
// show/hide elements you need based on the processing results
}
这假设您要显示/隐藏的元素实际上是ASP.NET控件。如果没有,您可以随时将它们放在<asp:Panel>
控件中,并管理以这种方式显示的内容。