更新JavaScript函數的內容這裏是我的代碼回發
<script type="text/javascript">
function getNextScroll(i){
<asp:Literal ID="infiniteScrollTableJS" runat="server"></asp:Literal>
}
</script>
我是填充用直譯一些JavaScript的代碼隱藏。這工作很棒OnLoad。但是,當我做回發時,我有一個問題。 Literal更新回發。實際的函數內部腳本實際上被改變了(我可以用Firebug看到它)。但是,函數並不知道里面有新的腳本,它只是繼續運行舊的東西。
所以我可以告訴,我想在回發後重新初始化函數內部的代碼。
我知道如何在使用add_endRequest回發後調用函數。
這個問題並不是.NET獨有的或任何東西。事實上,我在這裏有一個簡單的例子 - >http://jsfiddle.net/7JxY7/1/即使腳本內容改變,'運行函數'也會一直提醒'一個'。
我覺得jQuery可能有我可以使用的東西,但在四周搜索我什麼也沒找到。
編輯:
我試過mblase75的建議。這在Javascript中很好用(更重要的是,現在我明白了爲什麼),但是,考慮到這種方法,我仍然無法使用回發工作。這是我更新的代碼。
<script type="text/javascript">
function getNextScroll(i){
//some stuff
}
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
//mblase75 suggestion
getNextScroll = function (i){<asp:Literal ID="infiniteScrollTableJS" runat="server"></asp:Literal>};
});
</script>
我認爲這會起作用,但當然,它與我的原始方法有相同的問題。 Literal實際上已經改變了,但函數並不知道這個改變,它仍然有原始代碼