更新パネル内のボタン クリック イベントで、ユーザーから yes,no 値を返す JavaScript 関数を呼び出しています。ユーザーのアクション (はい/いいえ) に応じて特定のサーバー側関数を呼び出したい。私の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);
}
以下に示すサーバー側のボタンクリックでこれを呼び出しています。
if ((Convert.ToInt32(_dsLeaveDetails.Tables[0].Rows[0][0]) == 1)
{
ShowAlert("Leave is already marked for this date");
return;
}
else if ((Convert.ToInt32(_dsAttendanceDetails.Tables[0].Rows[0][0]) >= 1))
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "Confirm();", true);
string confirmValue = Request.Form["confirm_value"];
if (confirmValue == "Yes")
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You clicked YES!');", true);
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('You clicked YES!');", true);
}
return;
}
問題は、コードが完全に実行された後にのみポップアップが表示され、そのためにユーザー アクション (はい/いいえ) をさらに処理できないことです。また、ポップアップをすぐに必要としないため、 clientclick イベントで JavaScript 関数を呼び出すことはできません。データセット dsAttendanceDetails を確認した後でのみ、ポップアップが必要です。親切に助けてください。