ASP.NET在回发后丢失了jquery绑定

时间:2010-12-15 06:02:30

标签: asp.net jquery

我有asp.net页面,我在标记js文件中绑定。 Js文件主要通过类名来处理函数集。 在这些函数中,我使用WCF从服务器获取数据,只更改控制状态和数据。 也在页面上我做回发。一切都很好,但我的jquery功能在那之后不起作用。回发后我只在网格中添加一行,而不涉及jquery逻辑。

但是当我从

改变逻辑时
  

$(document).ready(function()

$jq("#ctrlID").change(function () {    }); )

  

$(document).ready(function()

$jq("#ctrlID").live('change', function () {    }); )

一切正常。

我很困惑。这是什么?我不添加控件

1 个答案:

答案 0 :(得分:2)

当DOM准备就绪时,

$(document).ready()执行。但是,它不会触发ajax异步回发,因此所有绑定都会丢失。 Live()基本上可以使您的绑定始终处于“活动状态”。另一种解决方案是使用pageLoad()客户端事件,它是ASP.NET客户端框架的一部分。此方法将触发正常和部分回发,您可以像平常一样绑定事件。

function pageLoad(sender, args)
{
// Your event bindings here
}

您还可以使用args.get_isPartialLoad()来确定您是在回发还是异步回发。