我有asp.net页面,我在标记js文件中绑定。 Js文件主要通过类名来处理函数集。 在这些函数中,我使用WCF从服务器获取数据,只更改控制状态和数据。 也在页面上我做回发。一切都很好,但我的jquery功能在那之后不起作用。回发后我只在网格中添加一行,而不涉及jquery逻辑。
但是当我从
改变逻辑时$(document).ready(function()
$jq("#ctrlID").change(function () { }); )
到
$(document).ready(function()
$jq("#ctrlID").live('change', function () { }); )
一切正常。
我很困惑。这是什么?我不添加控件
答案 0 :(得分:2)
$(document).ready()执行。但是,它不会触发ajax异步回发,因此所有绑定都会丢失。 Live()基本上可以使您的绑定始终处于“活动状态”。另一种解决方案是使用pageLoad()客户端事件,它是ASP.NET客户端框架的一部分。此方法将触发正常和部分回发,您可以像平常一样绑定事件。
function pageLoad(sender, args)
{
// Your event bindings here
}
您还可以使用args.get_isPartialLoad()
来确定您是在回发还是异步回发。