簡體   English   中英

jQuery模態對話框和ASP.NET回發

[英]jQuery modal dialog and ASP.NET postback

我的頁面上有一個使用jQuery的模式對話框,用戶在其中輸入密碼。

這是一個標准的jQuery對話框,效果很好。 我在datagrid中有linkbutton,它使用以下代碼打開對話框:

        $('.needsVal').click(function () {
            $("#login1").dialog('open');
            id = $(this).attr('id');
            return false;
        });

問題稍后在頁面中進行Ajax調用,並基於返回的值,我希望有選擇地為頁面觸發回發。 問題是回發永遠不會觸發。 我的回發代碼如下:

        if (returnValue == "true") {
            WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(id, "", false, "", "", false, true));
            return true;
        }
        else {
            alert("Authentication failure!\nPlease check your password and try again.");
            return false;

由於某種原因,我無法使回發與模式對話框一起使用,這使我發瘋。 我使用常規的Javascript提示進行此操作,但由於沒有辦法在提示中屏蔽密碼,因此必須對其進行更改。

關於如何使回發工作有什么想法?

id是具有單擊按鈕的唯一ID的全局變量。 我已經確認可以通過。

我設法使它起作用。

我發現頁面上有兩個ASP.NET控件-兩個gridview,一個帶有常規的linkbutton,另一個帶有linkColumn。

由於鏈接按鈕在兩種類型的控件中的工作方式(鏈接按鈕與命令按鈕),我不得不改變打開表單的方式以及與提示進行交互的方式。 我不得不創建兩個不同的事件。 (也許有一種方法可以做到這一點,但我無法弄清楚)

我最終用jQuery明智地總結了什么:

//Click event for gridview 1 (standard linkbutton)
$('.needsVal').click(function () {
                $("#login1").dialog('open');
                id = $(this).attr('id');
                return false;
            });

//Click event for second gridview (command button)
            $('.needsValSideMenu').click(function () {
                var h = $(this).html();
                script = h.substring(h.indexOf("\"") + 1, h.indexOf("\">"));
                $("#login2").dialog('open');
                return false;
            });

//AJAX call for standard linkbutton grid
function checkPassword() {
            var returnValue;
            $.ajax({
                async: false,
                type: "POST",
                url: "myservice.asmx/Authenticate",
                data: { "password": pw.value },
                dataType: "xml",
                error: function () { alert("Unexpected Error!"); },
                success: function (msg) {
                    returnValue = $(msg).find('boolean').text()
                }
            });
            if (returnValue == "true") {
                //alert(id.replace("_", "$"));
                id = id.split("_").join("$");                
                WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(id.replace("_","$"), "", true, "", "", false, true));
            }
            else {
                alert("Authentication failure!\nPlease check your password and try again.");
            }
        }

//Call for second grid (command button) - need to get and execute the script associated with this button
        function checkPasswordSideMenu() {
            var returnValue;
            $.ajax({
                async: false,
                type: "POST",
                url: "myservice.asmx/Authenticate",
                data: { "password": pw2.value },
                dataType: "xml",
                error: function () { alert("Unexpected Error!"); },
                success: function (msg) {
                    returnValue = $(msg).find('boolean').text()
                }
            });
            if (returnValue == "true") {
                eval(script);
            }
            else {
                alert("Authentication failure!\nPlease check your password and try again.");
            }
        }

我想不出一種在一種方法中執行此操作的方法,因為我需要根據單擊的按鈕類型來調用不同的checkPassword例程。

暫無
暫無

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

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