http://blog.163.com/renlee_1007/blog/static/225358620116203403011/
在使用AJAX的時候,因為各種AJAX控件的功能、樣式和效率都不盡相同,所以為了效果和效率我們都會遇到混用的時候。這時就有問題了,當(dāng)用UpdatePanel翻頁後,jQuery就會失效。下面是一個案例:
(代碼片段1)
<script language="javascript">
$(document).ready(function()
{
//for table row
$("tr:even").css("background-color", "#F4F4F8");
});
</script>
以上代碼在首次加載頁面時可行,但是當(dāng)我點(diǎn)擊任何分頁鏈接(部分回發(fā)頁面獲取該網(wǎng)頁的數(shù)據(jù)),UpdatePanel使頁面部分更新之後jQuery控制的特效就會不起作用了。要解決這個問題,我們可以用下面的代碼(代碼片段 - 2)取代上面的代碼(代碼片段1)。
<script language="javascript">
$(document).ready(function()
{
$("tr:even").css("background-color", "#F4F4F8");
});
function pageLoad(sender, args)
{
if(args.get_isPartialLoad())
{
$("tr:even").css("background-color", "#F4F4F8");
}
}
</script>
在上面的代碼片斷中你可以看到我已經(jīng)添加了一個函數(shù)調(diào)用pageLoad的,在每次頁面加載時、頁面的部分或全部回傳時激發(fā)。分頁鏈接被點(diǎn)擊時,我們關(guān)注的問題是部分更新,因此在pageLoad函數(shù),我檢查isPartialLoad,我們使用相同的代碼改變的交替行的背景顏色。
以下是一些更多的方法來達(dá)到同樣的效果。
<script language="javascript">
function pageLoad(sender, args)
{
$("tr:even").css("background-color", "#F4F4F8");
}
</script>
或
<script language="javascript">
Sys.Application.add_load(FirejQuery);
function FirejQuery()
{
$("tr:even").css("background-color", "#F4F4F8");
}
</script>