[英]Calling javascript Method from Code behind using ScriptManager.RegisterStartupScript
[英]jQuery document.ready doesn't fire after script called in code behind ScriptManager.RegisterStartupScript
我有使用https://mixitup.kunkalabs.com/过滤的项目列表
例如看屏幕
然后,用户选择添加另一个操作-这使用fancybox作为弹出窗口,并向用户显示下一张图像:
用户添加数据后,页面将使用更新面板进行部分回发。 然后,该代码从后面的代码中调用js函数以关闭弹出窗口,然后调用mixitup函数重新初始化列表,因为该列表中现在有一个新项,但是不起作用。
这是调用js的背后代码
ScriptManager.RegisterStartupScript(Me, [GetType](), "Load", "ReloadData();", True)
这是将被调用的js:
function ReloadData() {
parent.jQuery.fancybox.close();
$(document).ready(function () {
$('#Container').mixItUp({layout: {display: 'block'}});
});
}
fancybox关闭,但mixitup从未触发,因为它从未通过docment.ready测试,这意味着未加载它,因此无法运行jQuery,但是我不确定为什么吗?
$(document).ready()
在文档渲染完成后触发。 因此,如果您已经渲染了页面并且现在正在与之交互,则在重新加载页面之前,该ready语句不再具有任何意义。 因此,请勿将其放在函数中。
只需在功能块内调用您的mixItUp
代码即可。
function ReloadData() {
parent.jQuery.fancybox.close();
$('#Container').mixItUp({layout: {display: 'block'}});
}
作为建议:如果您已经在使用jQuery,请不要理会更新面板。 只需通过$.ajax
ajax调用即可。
您应该将以下代码放在ReloadData()
函数之外。
$(document).ready(function () {
$('#Container').mixItUp({layout: {display: 'block'}});
});
文件就绪功能应始终保持在最高级别。 另外,请在加载页面时检查是否有JS错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.