是否有任何可能的方法在一次asp按钮点击中以javascript和服务器端代码显示消息
我的标签和按钮:是否有任何可能的方法在一次asp按钮点击中以javascript和服务器端代码显示消息,javascript,asp.net,Javascript,Asp.net,我的标签和按钮: <h1 id="display"></h1> <asp:Button ID="Button1" runat="server" Text="display" Onclientclick="return show()" onclick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 我
<h1 id="display"></h1>
<asp:Button ID="Button1" runat="server" Text="display"
Onclientclick="return show()" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
我的剧本:
<script type="text/javascript">
function show() {
document.getElementById('display').innerHTML =
"iam client side code";
return true;
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "iam server side code";
}
函数show(){
document.getElementById('display')。innerHTML=
“iam客户端代码”;
返回true;
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
Label1.Text=“iam服务器端代码”;
}
我的问题是,当我单击按钮click事件时,客户端代码调用,而下一个服务器端代码正在调用。当服务器端代码调用页面刷新时,客户端消息消失。如何显示这两条消息
提前感谢当您编码服务器端按钮时,它将导致回发到服务器。因此,有两种方法可以处理这种情况 首先,您已经尝试的是仅在客户端处理消息显示。您需要做的是将服务器端按钮更改为一个简单的
input
元素
第二种方法是使用AjaxExtension
,它只会将您想要的控件发送到服务器端,不会导致整个页面重新加载,而是部分回发
第二次进近代码:更新代码如下:
<div>
<asp:ScriptManager runat="server"></asp:ScriptManager>
<h1 id="display"></h1>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="display"
Onclientclick="return show()" onclick="Button1_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
您也可以从按钮返回调用javascript。 你可以遵循这个例子
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Practise.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<title></title>
<script type="text/javascript">
function show() {
document.getElementById('display').innerHTML = "iam client side code";
return true;
}
</script> </head> <body>
<form id="form1" runat="server">
<h1 id="display"></h1>
<asp:Button ID="Button1" runat="server" Text="display" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form> </body> </html>
在第一个场景中,如果我将服务器端按钮作为简单的“输入”元素,它的行为就像一个html按钮。按钮单击事件如何在服务器端触发,第二种方法工作得非常好:)我已经提到了只在客户端处理消息显示。
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "iam server side code";
StringBuilder runscript = new StringBuilder();
runscript.AppendLine("show();");
ClientScriptManager manager = Page.ClientScript;
manager.RegisterStartupScript(this.GetType(), "any", runscript.ToString(), true);
}