JQModal、JQuery UI 选项卡和 JQModal 的奇怪问题ASP.NET 复选框列表
我有一个带有 JQuery UI 选项卡的模式。其中一个选项卡中有一个 ASP.NET 复选框列表服务器控件。我面临一个奇怪的问题,如果我在 JQModal 参数中设置 toTop:true
$(document).ready(function() {
$('#testDiv').jqm({toTop: true});
});
,当我在复选框列表上运行服务器端 foreach 时,它总是在所有项目上返回 false。即使用户在屏幕上选择/检查它们._。
foreach (ListItem li in cbItems.Items)
{
if (li.Selected) // <= Always false ???
{
DataRow dr = dt.NewRow();
dr["ID"] = Convert.ToInt32(li.Value.ToString());
dr["ITEMNAME"] = li.Text.ToString();
dt.Rows.Add(dr);
}
}
从 JQModal 参数中删除 toTop 可以解决问题,但会产生另一个问题,即在 IE7 中,我的 JQ 模态窗口位于模态覆盖层后面,这可能是由于容器 div 具有 CSS 位置:相对。有什么线索吗?
I have a modal with JQuery UI tabs inside. There is a ASP.NET checkbox list server control in one of the tabs. I am facing a weird issue that if I set toTop:true in JQModal parameters
$(document).ready(function() {
$('#testDiv').jqm({toTop: true});
});
when I run a server side foreach on the checkbox list it always returns false on all items. Even though if they are selected/checked by user on screen ._.
foreach (ListItem li in cbItems.Items)
{
if (li.Selected) // <= Always false ???
{
DataRow dr = dt.NewRow();
dr["ID"] = Convert.ToInt32(li.Value.ToString());
dr["ITEMNAME"] = li.Text.ToString();
dt.Rows.Add(dr);
}
}
Removing toTop from the JQModal parameters solves the problem but creates another problem that in IE7 my JQ modal window is behind the overlay of modal, which might be due to the container div having CSS position:relative. Any clue guys ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的猜测是,当您设置
toTop
选项时,JQModal 会获取包含复选框列表的 div 并将其附加到BODY
标记,而不是其在 DOM 中的正常位置。由于它不再位于FORM
标记内,因此当您进行回发时,这些值将丢失。My guess is that when you set the
toTop
option JQModal is taking your div that contains the checkbox list and attaching it to theBODY
tag instead of its normal position in the DOM. Since it is no longer inside theFORM
tag, then when you do the postback those values are lost.