簡體   English   中英

ASP.net - 按鈕 - Javascript確認對話框 - 執行一些服務器端代碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM