我创建了一个显示错误密码或用户名错误的对话框,但这并未关闭。 如何关闭此对话框而不刷新页面,代码就像
<asp:Panel ID="errorMsg" runat="server" Visible="false">
<asp:Label ID="msg" Text="" runat="server"></asp:Label>
<asp:Label ID="errorHead" Text="Something is really Wrong :" runat="server"></asp:Label>
<asp:button ID="try" OnClick="try_Click" runat="server" Text="Try Again" />
</asp:Panel>
代码背后:
protected void try_Click(object sender, EventArgs e)
{
errorMsg.Visible = false;
}
当输入错误时,errorMsg.visible设置为true,但在再次设置为false后,它不会关闭。
答案 0 :(得分:0)
OnClick 事件将触发PostBack刷新页面。
您可以尝试使用javascript:
<script text="text/javascript">
function hide(id){
if(id)
document.getElementById(id).style.display = "none";
}
</script>
<asp:Button ID="try" OnClientClick='hide("<%=errorMsg.ClientId%>")'
runat="server" Text="Try Again" />
或者您可以使用Update Panel简单地包装对话框。更新面板仅允许您刷新网站的一部分。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="errorMsg" runat="server" Visible="false">
...
<asp:Button ID="try" OnClick="try_Click"
runat="server" Text="Try Again" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>