c#函数和Javascript函数的事件(ASP.NET)
本文关键字:函数 ASP NET Javascript 事件 | 更新日期: 2023-09-27 18:17:37
我在使用ASP时遇到了困难。. NET组件,并希望有人可以帮助。我查看了多个查询,但没有一个真正有帮助。
我的页面上有一个"提交"按钮,当点击它应该做两件事:
1. 运行一个服务器端c#函数,更新div标签中的一堆<asp:Labels
。
2. 运行一个javascript动画,移动周围的东西,使<div
标签可见。
我的函数本身工作得很好,但是我的问题是自动反馈。如果我使用一个<asp:Button
回发刷新和javascript动画被撤消与它一起。如果我使用<input type="button"
标签,我无法运行c#和Javascript函数。我尝试了以下方法:
-
<input type="button" runat="server" onclick="c#function" onclientclick="javascriptFunction(); return false;"
** runat="server"似乎只是启用回发按钮 -
<asp:Button
** c#函数使用Page.ClientScript.RegisterStartupScript调用javascript函数,但是postback打败了动画
我希望保持javascript动画,因为他们使界面非常干净和直观,所以任何帮助保持它是非常感激的。有什么建议吗?
您可以使用ajax。您可以通过ajax将值传递给服务器页面,并让服务器页面为您处理(在表中插入记录/向某人/任何....发送电子邮件)并返回结果给您。直到你得到结果。你可以显示"正在处理…"给用户的消息
这是一个插件,有块效果。http://jquery.malsup.com/block/
下面是一个关于如何在ajax(使用jquery)中做到这一点的小示例
HTML<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<head>
<body>
<input type="button" id="btnGetProd" value="Get Products" />
<div id="divProducts"></div>
<script type="text/javascript">
$("#btnGetProd").click(function(){
$("#divProducts").html("Processing your request....</div>").fadeIn(100, function ()
{
$.ajax({
url: "myajaxserverpage.aspx?mode=getprodcusts&category=3",
success: function (data) {
$("#divProducts").html(data).fadeIn(100);
},
error: function (req, textStatus, error) {
alert("Some error occured");
}
})
});
});
</script>
</body>
</html>
,你应该有一个名为myajaxserverpage的页面。返回名为"divProducts"的div的内容(例如:产品列表)
上面的代码所做的是,当用户点击按钮,它显示文本"处理您的请求…"在div中,然后使一个ajax调用aspx页面。一旦它收到响应,它就把它放到div中,然后执行一个fadeIn效果。
你所经历的是意料之中的。浏览器将执行javascript,然后向服务器发送请求。服务器处理请求并发送响应。然后,客户机将呈现响应。此时,您所做的任何UI更改都将被丢弃,因为收到了新请求。
为了解决这个问题,您需要将ajax合并到您的页面中。另一种方式来满足您的需求1.让按钮只做javascript函数2.让javascript函数在你完成动画后进行回发Ajax不是必需的