C# GridView上的jQuery函数在页面上回发后停止工作(鼠标悬停,单击)
我的所有jQuery函数在第一次加载页面时都能很好地工作,这是在我执行回发之后,它会导致为GridView填充一个rowfilter,并基于rowfilter再次绑定网格。我的GridView完全由代码构建并呈现为一个表。在回发之后,mouseover、mouseout和单击my table中的表行的函数不再起作用 我将jQuery函数放在document.ready函数中。我还注意到,在回发之前,这会添加到行的html中:C# GridView上的jQuery函数在页面上回发后停止工作(鼠标悬停,单击),c#,jquery,.net,gridview,postback,C#,Jquery,.net,Gridview,Postback,我的所有jQuery函数在第一次加载页面时都能很好地工作,这是在我执行回发之后,它会导致为GridView填充一个rowfilter,并基于rowfilter再次绑定网格。我的GridView完全由代码构建并呈现为一个表。在回发之后,mouseover、mouseout和单击my table中的表行的函数不再起作用 我将jQuery函数放在document.ready函数中。我还注意到,在回发之前,这会添加到行的html中: <tr jQuery1320916="3"> 我错过了什
<tr jQuery1320916="3">
我错过了什么,提前谢谢
我确实发现jQuery不再通过此方法找到我的gridview:
$('table[id^=taskgrid]tbody tr'),如果我填写taskgrid的总id,那么它就可以工作了。但这不是我的选择
//is everthing checked? start if
if($(this).parent().find('input:checkbox:not(:checked)').length == 0){
$(this).parent().parent().parent().parent().find('input:checkbox:first').attr('checked',true)
}else{
$(this).parent().parent().parent().parent().find('input:checkbox:first').attr('checked',false)};
//end if
问题是,您正在使用“从开始”选择器:
$('table[id^=taskgrid] tbody tr')
$('table[id$="taskgrid"] tbody tr')
$('table[id*="taskgrid"] tbody tr')
对于ASP.NET WebForms生成的id,最好使用“ends with”选择器。假设您的GridView id为“taskgrid”,请尝试使用以下选择器:
$('table[id^=taskgrid] tbody tr')
$('table[id$="taskgrid"] tbody tr')
$('table[id*="taskgrid"] tbody tr')
如果您针对多个表元素,并且“taskgrid”只是id的一部分,则可以使用“contains”选择器:
$('table[id^=taskgrid] tbody tr')
$('table[id$="taskgrid"] tbody tr')
$('table[id*="taskgrid"] tbody tr')
检查这个问题:我的解决方案中没有使用UpdatePanel,引用这个问题的答案:“PageRequestManager是一个javascript对象,如果页面上有更新面板,它会自动可用。”问题是我在一个页面上有多个GridView,GridView的总量可能不同,我为网格分配了一个ID,该ID由网格的taskgrid+名称组成(每个网格中的名称不同)。当我偶然将其设置为$('table[id*=“taskgrid”]tbody tr')时,它将搜索一个id包含taskgrid的表。在此之后,鼠标悬停和单击功能将正常工作,但用于检查单击网格中的所有复选框是否已选中的以下功能将选中该网格视图中的“全部选择/取消选择”复选框。我添加了上面的函数。然后选择“contains”选择器-->$('table[id*=“taskgrid”]tbody tr')