C# .toggle()带asp:按钮的div
我有一个基本的div,我想在客户端单击asp:按钮时使用。只要代码运行,它就可以工作,但我认为服务器端的OnClick事件处理程序会导致div在被单击后重置。基本上,div消失大约0.01毫秒,然后立即重新出现。下面是我的问题的最简单的代码示例 以下是发生的情况的示例: Default.aspx:C# .toggle()带asp:按钮的div,c#,jquery,html,asp.net,postback,C#,Jquery,Html,Asp.net,Postback,我有一个基本的div,我想在客户端单击asp:按钮时使用。只要代码运行,它就可以工作,但我认为服务器端的OnClick事件处理程序会导致div在被单击后重置。基本上,div消失大约0.01毫秒,然后立即重新出现。下面是我的问题的最简单的代码示例 以下是发生的情况的示例: Default.aspx: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplicati
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Testing</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
function ToggleMe() {
$('#toggleMe').toggle();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="toggleMe">
<label>Hello World</label>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="ToggleMe();"/>
</form>
</body>
</html>
我已经尝试了.removeClass、.addClass、.css。。。我不认为我使用的jQuery与单击按钮时发生的回发问题一样重要
我正在运行Chrome来测试这一点,如果这很重要的话
提前感谢您的时间和帮助 HTML的javascript部分在用户浏览器中执行。受保护的void button1\u click方法在服务器上执行。发生的情况是,用户的浏览器将正确切换div,导致其消失。不幸的是,ASP.NET按钮的HTML随后将重新提交页面,这意味着浏览器将从服务器刷新HTML。服务器没有发生切换的概念,因为javascript没有在那里执行,而int i设置为5,div在进入服务器后刷新页面后被重新设置为可见。你的选择是: 1) 不要对按钮单击使用任何服务器端逻辑,并摆脱
<asp:Button ID="Button1" ... />
HTML的javascript部分在用户的浏览器中执行。受保护的void button1\u click方法在服务器上执行。发生的情况是,用户的浏览器将正确切换div,导致其消失。不幸的是,ASP.NET按钮的HTML随后将重新提交页面,这意味着浏览器将从服务器刷新HTML。服务器没有发生切换的概念,因为javascript没有在那里执行,而int i设置为5,div在进入服务器后刷新页面后被重新设置为可见。你的选择是: 1) 不要对按钮单击使用任何服务器端逻辑,并摆脱
<asp:Button ID="Button1" ... />
当您单击aspx:按钮时,它将提交页面。如果您使用常规的html按钮,这会容易得多
<input type="button" onclick="ToggleMe()">Button</input>
当您单击aspx:按钮时,它将提交页面。如果您使用常规的html按钮,这会容易得多
<input type="button" onclick="ToggleMe()">Button</input>
如果希望首先执行客户端单击,您可能需要使用jquery
click
函数,而不是OnClientClick
和return false
:当您单击按钮时,是否确实需要回发?激情代码:我相信JavaScript是首先执行的,但DOM会在服务器端代码运行并返回。逐出教会:是的,这是必须发生的。我决定在这个链接上使用这个解决方案:谢谢你们两个试图帮助我!如果希望首先执行客户端单击,您可能需要使用jqueryclick
函数,而不是OnClientClick
和return false
:当您单击按钮时,是否确实需要回发?激情代码:我相信JavaScript是首先执行的,但DOM会在服务器端代码运行并返回。逐出教会:是的,这是必须发生的。我决定在这个链接上使用这个解决方案:谢谢你们两个试图帮助我!就我的目的而言,它更容易但不正确:(无论如何,谢谢!就我的目的而言,它更容易但不正确:(无论如何,谢谢!这是一些很棒的解决方案!谢谢你的回答!也谢谢你验证我关于发生了什么的假设!这是一些很棒的解决方案!谢谢你的回答!也谢谢你验证我关于发生了什么的假设!
protected void Button1_Click(object sender, EventArgs e)
{
int i = 5;
toggleMe.Visible = !toggleMe.Visible;
}
<input type="button" onclick="ToggleMe()">Button</input>
function ToggleMe() {
$('#toggleMe').toggle();
return false;
}