簡體   English   中英

有沒有辦法通過從后面的代碼調用函數在 ASP.Net VB 中創建是/否彈出窗口?

[英]Is there a way to create a Yes/No popup in ASP.Net VB by calling a function from the code behind?

我需要檢查 ASP.Net 網頁后面代碼中的變量,如果變量是某個值,我想顯示一個帶有消息和是/否按鈕的模式彈出窗口。 消息將從后面的代碼發送。

你真的不能這樣做。 但是,您可以獲得大致相同的效果。

第一種方法 - 非常簡單

這假設用戶要單擊表單上的按鈕。 所以,說一個刪除按鈕,或者說運行一個進程的一些動作。

你把你的標准 asp.net 按鈕放到你的表單上,如下所示:

    <asp:Button ID="Button3" OnClientClick="return myconfirm();"
        runat="server" Text="Delete record" Width="90px" />
    <script>
        function myconfirm() {

            var x = confirm("Do you want to delete this record");
            return x;
        }
    </script>

所以上面將首先運行“js”腳本代碼。 注意“在客戶端點擊”。 如果該函數返回 true,則按鈕(服務器端)背后的標准代碼將運行。

事實上,在大多數情況下,用戶“必須”點擊某物才能執行操作。 你真的說點擊一個按鈕,然后背后的代碼開始運行。 但是,在這個所謂的“往返”期間,您不能讓代碼停止並要求輸入,例如是/否。

為什么? 因為當您單擊一個按鈕時,網頁會傳送到服務器。 你背后的代碼開始運行。 您在網頁上更改的任何內容現在都隨背后的代碼而更改。 然后整個頁面被發送回瀏覽器。 如果您在代碼隱藏時停止或中斷代碼,則網頁永遠不會被發送回瀏覽器,直到您隱藏的所有代碼都 100% 完成並完成。 當所有后面的代碼都完成后,頁面就會被發送回瀏覽器。 所以你不能中斷代碼。

還有其他幾種彈出對話框的方法。 並且由於代碼隱藏,您可以彈出並啟動對話框,但這實際上是您的代碼所做的最后一件事,這將意味着一個腳本塊被發送到網頁中也被刪除發送到客戶端。

代替 js 中的“蹩腳”confirm(),你當然可以使用 say jQuery.UI,與可怕、丑陋和簡單的確認對話框相比,它允許你制作一些半體面的對話框。 公平地說,Chrome 瀏覽器的 confirm() 確實看起來不錯,但是大多數瀏覽器中的 confirm()/alert() 對話框還有很多不足之處,稱它們為“丑陋”是一種善意。

詢問/獲取提示的另一種方式? 不要使用確認/對話框。 只需將您的是/否放在表單上,​​就像單選按鈕一樣。 如果您有 2-3 個問題,那么只需設置 auto-post back = true,然后在第一個是/否(例如單選按鈕組)之后進行回發,然后顯示下一個問題。 這對我發現背后的代碼非常有效。

最后但並非最不重要的? 如果它是代碼的最后一件事或最后一行,您當然可以讓代碼背后彈出一個對話框。 你可以做一個 registerScipt 塊,它可以彈出一個是/否對話框。 但是,由於它只是您可以在后面的代碼中執行的最后一段代碼,因此在 99% 的情況下,您的后面的代碼將是用戶單擊 asp.net 按鈕的結果。 既然是這樣,那么上面的第一個示例要求/確認再次運行按鈕代碼就足以滿足 99% 的情況。 所以請記住,在往返過程中,您不能在代碼中隱藏任何阻塞代碼。 因此,您不能出現阻塞提示,然后后面的代碼會繼續。 后面的代碼只需要一次,一次更改就可以運行。 該代碼在頁面在服務器上啟動時運行。 您的代碼運行、更改內容、控件值,然后一旦完成,頁面將返回客戶端。 這就是所謂的往返。

如上所述,您可以在往返設置中確定瀏覽器在頁面返回瀏覽器后提示是/否對話框。 例如,我確實說設置了一個吐司消息。 如果一個人說點擊了某個按鈕,然后說要做某事(比如下載一個文件),而該文件不存在? 我可以讓瀏覽器說吐出一條吐司消息。 所以你可以在后面的代碼中觸發一個對話框,或者 toast 消息,甚至可以從后面的代碼中彈出一個對話框,但請記住,toast 消息的設置或彈出一個對話框將是最后的操作你在后面的代碼中做,然后瀏覽器返回到客戶端,顯示出來,然后你的對話框彈出。 由於該對話框彈出,您可以(並且將會)然后將代碼隱藏(和另一個往返)發生。 我可以發布一個如何執行此操作的示例,但在此示例中,當隱藏代碼正在設置和觸發對話框時,不會有代碼阻塞,或者等待是/否,然后代碼塊繼續。

暫無
暫無

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

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