您好,我想从asp.net中的代码后面调用客户端JavaScript确认消息。如何从asp.net后面的代码调用确认消息?
我想使用确认消息中的true或false返回值。
我这样做,但这不是正确的方式,请告诉我我该怎么做。
ScriptManager.RegisterStartupScript(this, this.GetType(), "myconfirm", "confirm('No Rule Type Ids found for This Rule.');", true);
您好,我想从asp.net中的代码后面调用客户端JavaScript确认消息。如何从asp.net后面的代码调用确认消息?
我想使用确认消息中的true或false返回值。
我这样做,但这不是正确的方式,请告诉我我该怎么做。
ScriptManager.RegisterStartupScript(this, this.GetType(), "myconfirm", "confirm('No Rule Type Ids found for This Rule.');", true);
我想这是你想要达到的目标:
<script type = "text/javascript">
function Confirm() {
var confirm_value = document.createElement("INPUT");
confirm_value.type = "hidden";
confirm_value.name = "confirm_value";
if (confirm("Do you want to save data?")) {
confirm_value.value = "Yes";
} else {
confirm_value.value = "No";
}
document.forms[0].appendChild(confirm_value);
}
</script>
的.aspx代码
<asp:Button ID="btnConfirm" runat="server" OnClick = "OnConfirm" Text = "Raise Confirm" OnClientClick = "Confirm()"/>
Ç直接#
public void OnConfirm(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked YES!')", true);
}
else
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true);
}
}
感谢,这是神的想法,但是如果你不回发页面,它不起作用,因为appendChild命令不会清除以前的值。 –
而不是写作的代码确认背后。编写javascript函数的名称。 Forexample,
ScriptManager.RegisterStartupScript(this, this.GetType(), "myconfirm", "OpenConfirmDialog();", true);
在JavaScript,编写函数OpenConfirmDialog
<script>
function OpenConfirmDialog()
{
if (confirm('No Rule Type Ids found for This Rule.'))
{
//True .. do something
}
else
{
//False .. do something
}
}
</script>
我想在我的C#代码中使用这个真或假的值。 – user3475314
是的。因为,确认框是在JavaScript方面。您将不得不向服务器发送请求,要么是真或假。例如。您可以请求一个带有查询字符串的网页,例如www.abc.com/default.aspx?result=true。在服务器端,你可以得到像Request.QueryString [“result”]这样的值。 –
@ user3475314你可以检查我的更新回答 –
你可以不用使用Javascript功能
尝试
if (MessageBox.Show("confirm('No Rule Type Ids found for This Rule.')",
"myconfirm",
MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// yes
}
else
{
//No
}
这不会在一个webproject(asp.net) –
@HansKesting你能解释为什么这不起作用吗?它正在为我的webproject工作(asp.net) –
它似乎在一切都在本地运行的调试情况下工作。当它在真实服务器上运行时,该弹出窗口将显示在服务器的控制台上,而不是显示在用户的屏幕上。 –
您不能混用客户端代码与服务器端代码。在服务器端代码完成之前,客户端代码(javascript)将不会发送到客户端(浏览器)。
您将需要停止处理并向用户显示问题(可能通过重定向到其他页面),然后(在确认时)继续处理。
Response.Write("<script language=javascript>");
Response.Write("if(confirm('El vehiculo no existe, Deseas crear el registro?')){window.location.href='IngresoVehiculos.aspx'}");
Response.Write("</script>");
使用:
Response.Write("<script>alert('Open Message!');</script>");
我不认为这回答了这个问题。 “后面的代码”表示服务器中的C#或VB代码,而不是客户端中的JavaScript。 – Mikkel
我更喜欢使用的typeof(我的页面),而不是的GetType()保存反射(除非你是一个基本页面上明明) – Liath