簡體   English   中英

ASP.NET WebForms確認

[英]ASP.NET WebForms Confirm

我是使用.NET進行Web編程的新手。

我正在開發一個帶有Web表單的網頁,並且我想在某個時候以編程方式顯示一個模式窗口,以供用戶接受或取消。 JavaScript的“確認”功能究竟是什么。

我試圖讓它調用JavaScript函數:

Page.ClientScript.RegisterStartupScript (this.GetType (), "CallMyFunction", "MyFunction()", true);

但是我需要在不重新加載頁面的情況下執行此操作,並且我還需要控制用戶是否已接受或取消該操作,並且我不知道該怎么做。

我還嘗試使用DevExpress的ModExPopupExtender控件來獲取它。

有人可以告訴我一種獲取我想要的東西的簡單方法嗎?

我不明白如何在Web編程中如此常見,而PHP + javascript不會造成任何問題卻是如此復雜。

所有操作均以背后的代碼的一鍵式事件開始:

  protected void btn1_Click(object sender, EventArgs e)
        {
           //I make a series of checks

           //If certain conditions I want to show the confirm

           //According to the user has chosen ok or cancel will perform a certain action
         }

Onclientclick對我沒有幫助,因為在啟動“確認”之前,我必須在服務器端進行一些檢查。 非常感謝你。

您可以使用OnClientClick ,這是大多數Web控件上的屬性。

我只想調出一個簡單的confirm()對話框,如果用戶單擊“確定”,則執行服務器代碼,如果用戶取消操作,則不執行任何操作:

<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save"
    OnClientClick="return confirm('Are you sure you want to do this thing?');"  />

您也可以使用它進行其他操作,但是要記住的關鍵是,在OnClientClick執行的任何操作都將頁面重新發布到服務器之前發生。

這也是完全有效的:

<asp:Button runat="server" ID="btnSave"
    OnClientClick="showModalConfirm('some message goes here');" ... />

<script>
    function showModalConfirm(msg)
    {
        $(".modal .message").innerHtml(msg);
        $(".modal").Show();
    }
</script>

您可以以完全相同的方式設置OnClientClick應該在您的代碼背后執行的操作:

protected void Page_Load(object sender, EventArgs e)
{
    btnSave.OnClientClick = "return confirm('Are you sure you want to do this thing?');";
}

您可以在c#中使用以下代碼來調用javascript函數。 下面的代碼將執行afterpostback()JavaScript函數:

ClientScript.RegisterStartupScript(GetType(), Javascript, "javascript:afterpostback();", true);

您可以在javascript函數中編寫代碼以顯示任何div或彈出窗口:

<script language="javascript" type="text/javascript">
 function afterpostback() {

            //Here you can write javascript to display div/modal
    }
</script>

我以前處理此問題的一種方法是在頁面上有2個按鈕。 第一個將最初可見,並標記為“提交”。 第二個將最初被隱藏並標記為“確認”。 點擊后,“提交”按鈕將回傳並執行服務器端檢查/驗證。 如果這些檢查失敗,將顯示相應的錯誤消息。 如果通過了這些檢查,將顯示適當的“請確認您的提交”類型的消息,“提交”按鈕將變為隱藏,第二個“確認”按鈕將變為可見。 單擊該“確認”按鈕后,它將再次回傳並完全提交。

編輯:我忘了提一下,在我最初發布之后,我想到的還有更多東西。 如果服務器端驗證成功,則必須保護字段不被編輯,因為您顯然不希望用戶更改值,然后單擊“確認”按鈕。 這意味着禁用所有輸入控件-如果您操作太多,可能會很麻煩。 您還必須給他們提供一種方法(有意地)進行編輯,以防服務器端驗證通過,顯示確認,並且他們改變主意-因此,基本上,您需要第三個“取消/編輯”類型的按鈕,將表單放回編輯模式,並顯示您的初始“提交”按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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