我的页面上有一个模式对话框,使用jQuery,用户输入密码。
这是一个标准的jQuery对话框,它工作正常。我在数据网格中有链接按钮,使用以下代码打开对话框:
$('.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。我已经证实这是正确的。
答案 0 :(得分:0)
我设法让这个工作。
我发现页面上有两个ASP.NET控件 - 两个gridviews,一个带有常规链接按钮,另一个带有linkColumn。
由于链接按钮在两种类型的控件(linkbutton与commandbutton)中的工作方式,我不得不改变我打开表单的方式,以及我如何与提示进行交互。我不得不创造两个不同的事件。 (也许有办法用一个,但我无法弄明白)
我最终结识了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例程。