我有一个向其添加树文件脚本的页面。
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/init.js"></script>
<script type="text/javascript" src="js/easing.js"></script>
我有一个带有下拉列表的updatepanel。当运行SelectedIndexChanged事件(更新面板的部分回发)时,不要执行javascript。
答案 0 :(得分:26)
使用
function pageLoad(sender, args) {
InitialiseSettings();
}
function InitialiseSettings(){
// replace your DOM Loaded settings here.
// If you already have document.ready event,
// just take the function part and replace here.
// Not with document.ready
$(element).slideUp(1000, method, callback});
$(element).slideUp({
duration: 1000,
easing: method,
complete: callback});
}
或尝试使用add_endRequest
事件处理程序:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(InitialiseSettings)
<强> 更新 强>
更好地将所有代码从document.ready移动到InitialiseSettings函数并将其传递给 pageLoaded
事件
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings)
代码示例:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings)
答案 1 :(得分:20)
要在完整和部分回发中运行您的javascript,请将您的javascript代码放入javascript pageLoad()函数。
function pageLoad()
{
//your javascript code
}
示例:
function pageLoad() {
$(':submit').click(function () {
CommodityArray();
});
$('#btn_image').click(function () {
CommodityArray();
});
$(".repHeader").disableSelection();
CommodityArray();
}
希望它有所帮助! :)
答案 2 :(得分:7)
您必须在更新面板后使用以下代码。
<script type="text/javascript" language="javascript">
var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
pageRequestManager.add_endRequest(NewCharacterCount);
</script>
其中NewCharacterCount
是您的javascript函数名称。
阅读这篇文章Sys.WebForms.PageRequestManager endRequest Event 希望它可以帮助你。
答案 3 :(得分:0)
如果您正在使用UpdatePanel,并且想要在更新面板中的内容刷新后调用javascript函数,则可以使用以下方法轻松完成。在Page body
代码中,调用函数RefreshContent()
<body onload="RefreshContent()">
<script type="text/javascript">
function RefreshContent()
{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler()
{
alert("Add your logic here" );
}
</script>
答案 4 :(得分:0)
您可以使用PageRequestManager client events。 sender参数将包含您需要的信息。例如,人们可以这样做:
// Register event handler
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
/// Executed when all page content is refreshed, full page or async postback: https://msdn.microsoft.com/en-us/library/bb397523.aspx
function pageLoaded(sender, args) {
var isPostBack = sender.get_isInAsyncPostBack();
if(!isPostBack) return;
// PostBack logic here.
}