2011-08-23 66 views
4

我有一個簡單的ASP.net頁面,用戶可以編輯他們自己的信息。ASP.net - 按鈕 - Javascript確認對話框 - 執行SOME服務器端代碼?

單擊「編輯」按鈕時,表單進入編輯模式,並顯示「保存」和「取消」按鈕,其行爲與預期相同。

我想要做的是這樣的:

當點擊「保存」,顯示一個Javascript確認對話框,詢問用戶是否要發送電子郵件到其他用戶,向他們更新的只是做。

如果用戶說OK,然後執行所有服務器端代碼來保存數據,併發送一封電子郵件。 如果用戶說取消,則執行所有服務器端代碼以保存數據,而不發送電子郵件。

所以,我需要的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 

我知道如何添加一個確認框到按鈕屬性,並已完成。我正在尋找關於如何在服務器端讀取該框結果的答案......換句話說,我總是希望頁面回發發生(從單擊按鈕),但只有一些事件處理程序代碼執行。

希望是有道理的。

感謝

馬特

回答

3

創建一個隱藏字段,並設置現場的基礎上,確認結果的值。您還沒有表現出對您的按鈕或窗體的代碼/ 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> 
+0

這是最接近的解決方案我使用的,最終。 我在窗體中添加了一個隱藏字段,然後爲onClick的按鈕屬性添加了一個javascript字符串,該字符串基於對javascript confirm()對話框的響應設置隱藏字段的值。 謝謝! – MattC1999

1

有幾種方法可以做到這一點,但我會用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; 
} 
相關問題