我有一个打开的jquery对话框。在它上面是AutoPostback
设置为true
的一些服务器端下拉列表,因为它们在回发后级联并填充其他下拉列表。通过使用隐藏字段并将其设置为1(如果我需要保持对话框打开)或者如果我想关闭它,则保持我的对话框保持打开状态。
继承jquery测试以查看隐藏字段值:
if ($("#MainContent_hdnOpenContactCompany").val() === "1") {
$("#dialogContactCompany").dialog("open");
} else {
$("#dialogContactCompany").hide();
}
所以我的问题不在于我没有打开对话框,我的问题是当我向下滚动页面然后打开一个对话框时,我做回发的那一刻对话框移动到页面顶部。因此,除非他/她滚动到顶部,否则用户无法看到它。
我尝试添加这个,(http://www.cleancode.co.nz/blog/240/jquery-dialog-position-problem-web-form-postback),但我相信作者有一个设定的宽度...但这对我不起作用。
//Company dialog
var pos = new Array();
pos[0] = ($(window).width() - 880) / 2 +
parseInt(theForm.elements['__SCROLLPOSITIONX'].value);
pos[1] = 100 + parseInt(theForm.elements['__SCROLLPOSITIONY'].value);
$("#dialogContactCompany").hide();
$("#dialogContactCompany").dialog({
autoOpen: false,
appendTo: "form:first",
position: pos,
width: 880,
height: 'auto',
modal: true,
open: function (event, ui) {
$('#dialogContactCompany').css('overflow', 'hidden'); //this line does the actual hiding
},
close: function (event, ui) {
//if someone x's out (Closes the dialog) we better make sure we
//set the hidden field to 0 so that the dialog doesn't open up again on post back
$("#MainContent_hdnOpenContactCompany").val("0");
}
});
主要是pos
信息来维持一个位置,但这也不起作用。我该如何解决这个问题?
答案 0 :(得分:1)
最后得到了这个我们必须使用document.scroll。 这是一篇很棒的文章:http://jadendreamer.wordpress.com/2013/04/24/jquery-tutorial-scroll-ui-dialog-boxes-with-the-page-as-it-scrolls/