您好,我想從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