[英]ASP.net - Button - Javascript Confirm dialog - execute SOME server-side code?
我有一個簡單的ASP.net頁面,用戶可以在其中編輯自己的信息。
單擊“編輯”按鈕后,表單進入編輯模式,並顯示“保存”和“取消”按鈕,其行為與預期一致。
我想要做的是:
單擊“保存”時,顯示“Javascript確認”對話框,詢問用戶是否要向其他用戶發送電子郵件,以通知他們剛剛進行的更新。
如果用戶說好,則執行所有服務器端代碼以保存數據,然后發送電子郵件。 如果用戶說取消,則執行所有服務器端代碼以保存數據,而不發送電子郵件。
所以,我需要javascript框設置一個標志,然后可以在服務器端讀取,不知何故...然后我可以做類似的事情:
Sub btnSave_Click(sender, e) Handles btnSave.Click
'Save all the data
If sendEmail Then 'This flag set by reading result of javascript Confirm
'Send the email
End If
End Sub
我知道如何在按鈕屬性中添加一個確認框,並且已經這樣做了。 我正在尋找關於如何在服務器端讀取該框的結果的答案...換句話說,我總是希望頁面回發發生(通過單擊按鈕),但只有一些事件處理程序代碼執行。
希望有道理。
謝謝
馬特
創建隱藏字段,並根據確認結果設置該字段的值。 您沒有顯示按鈕或表單的代碼/ HTML,但是您可以在其中顯示以下內容:
<input type="hidden" id="sendEmail" name="sendEmail" value="" />
<input type="submit" value="Save" onclick="promptForEmail();" />
<script>
function promptForEmail() {
var result = Confirm("Send everybody an email?");
// set a flag to be submitted - could be "Y"/"N" or "true"/"false"
// or whatever suits
document.getElementById("sendEmail").value = result ? "Y" : "N";
}
</script>
有幾種方法可以做到,但我將使用asp:HiddenField。 在javascript中,用戶確認后,將其結果設置在隱藏字段中。 在服務器端,您可以像任何其他asp.net控件一樣訪問它。
所以
你的aspx:
<asp:HiddenField ID="HiddenField1" runat="server" Value="" />
代碼隱藏:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var result = HiddenField1.Value;
}
}
使用Javascript:
//after confirm call this
function SetValue(val)
{
document.getElementById('HiddenField1').value=val;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.