2010-12-15 104 views
0

我有asp.net页面,我在标记js文件中绑定。 Js文件主要通过类名称来处理一组函数。 在这些函数中,我使用WCF从服务器获取数据,并仅更改contols状态和数据。 也进入页面我做回发。一切都很好,但我的jQuery功能后不工作。回发之后,我只添加一行到不涉及jQuery逻辑的网格。ASP.NET在回发后丢失jQuery绑定

但是,当我改变了我的逻辑从

$(文件)。就绪(函数()

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

$(文件)。就绪(功能()

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

一切工作正常。

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

回答

2

$(document).ready()在DOM准备就绪时执行。但是,它不会触发ajax异步回发,因此所有绑定都会丢失。 Live()实质上始终保持绑定“活动”。另一种解决方案是使用pageLoad()客户端事件,它是ASP.NET客户端框架的一部分。这种方法会触发正常和部分回发,并且可以像在正常情况下一样绑定事件。

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

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