ユーザーがレコードを削除できるフォームがあり、削除を確認するためにユーザーがOKをクリックする必要があるポップアップメッセージが必要です。
削除ボタン:
<asp:Button ID="btnDelete" runat="server" Text="Delete" UseSubmitBehavior="false" OnClick="btnDelete_Click" OnClientClick="confirmation();" />
確認機能:
function confirmation() {
var answer = confirm("Are you sure you want to delete? This action cannot be undone.")
}
そのため、今すぐ、削除ボタンをクリックすると、ポップアップボックスで[OK]または[キャンセル]のどちらをクリックしても、コードビハインドでbtnDelete_Click Subが実行されます。 javascript関数にif(answer){-some code here-}を追加できることは知っていますが、javascriptを使用して分離コードからコードを実行することは可能ですか?または、これを行う別の方法はありますか?
次のようにしてみてください。確認関数の結果を返す必要があります(trueまたはfalse)。
<asp:Button
ID="btnDelete"
runat="server"
Text="Delete"
UseSubmitBehavior="false"
OnClick="btnDelete_Click"
OnClientClick="return confirmation();" />
function confirmation() {
return confirm("Are you sure you want to delete?");
}
これをaspxコードに入れてください:
OnClientClick="return confirm('Are you sure you want to delete this project?');"
私はこれが古い投稿であることを知っていますが、上記の答えをこのような1行に入れることができます。また、関数を記述する必要もありません。
<asp:Button runat="server" ID="btnDelete" Text="Delete" OnClick="btnDelete_Click" OnClientClick="if ( !confirm('Are you sure you want to delete ? ')) return false;" />
このサンプルを使用してください:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return ConfirmOnDelete();"/>
<script type="text/javascript">
function ConfirmOnDelete() {
if (confirm("Do you really want to delete?") == true)
return true;
else
return false;
}
</script>
これを確認するには、ConfirmButtonExtenderを使用します。
<ajaxToolkit:ConfirmButtonExtender ID="cbeDelete" TargetControlID="btnDelete" ConfirmText="Are you sure you want to delete? This action cannot be undone." runat="server">
その非常にシンプルな...
1)フォームデザイン
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<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>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnConfirm" runat="server"
OnClick = "OnConfirm" Text ="Raise Confirm" OnClientClick = "Confirm()"/>
</form>
</body>
</html>
2)分離コード
public void OnConfirm(object sender, EventArgs e)
{
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"alert('You clicked YES!')", true);
}
else
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You clicked NO!')", true);
}
}
3)削除ボタンをクリックすると、確認ボックスが表示されます。
4)[OK]をクリックすると、[OK]パーツがコードで機能します。それ以外の場合は[パーツなし]
5)GRIDVIEW DELETE BUTTONの同じ方法。
これを実現するさらに別の方法は、次のようにAJAX Toolkit ConfirmButton Extenderを使用することです。
Buttonで使用できない場合は上記でうまくいくと思います。<asp:link button>
。鉱山はうまく動作します。
ASPXページ:-
<asp:LinkButton ID="takeActionBtn" CausesValidation="false" runat="server"
onclientclick="return confirm('Do you really want to perform Action ?');"> Take Action </asp:LinkButton>
VBサーバー分離コード:-
Protected Sub takeActionBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles takeActionBtn.Click
End Sub
私が注意したことの1つは、ページ内でコントロール(ascx)を使用している場合、ページまたはコントロールレベルでオフ/オンにする必要がある場合があるということですAutoEventWireup="false" <%@ control in <%@ page
幸運を !!
実際にポストバックを行わずにサーバー側でコードを実行したい場合は、ajaxを使用して実行する必要があります。
_function confirmation() {
var answer = confirm("Are you sure you want to delete? This action cannot be undone.")
if(answer)
{
$.post("ajaxserverpage.aspx?item=34",function(data){
alert(data);
});
}
return false;
}
_
ajaxserverpage.aspxというページがあり、そのページのページ読み込みでクエリ文字列を確認し、関連するサーバー側コードを実行して、文字列を返します
_ protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["item"] != null)
{
// read the item and do your stuff here
Response.Write("Deleted succssfully");
Response.End();
}
}
_
.aspxファイルの代わりにgeneric handler (.ashx)
を使用して、ajaxサーバー側の処理を行うこともできます。私はこの方法を好むでしょう。
あなたはちょうど置くことができます:
onclientclick = "return (window.confirm('text message'));
ASPX
ページでは、同じことを行います。