我在用戶控件中有一個樹形視圖。我需要運行一個JavaScript函數與每個異步回發滾動它的div在正確的位置。我已經有了它,但我認爲必須有一種「更乾淨」的方式來實現它。在控件的Page_Load函數中,我有以下代碼。有沒有更好的方法來做到這一點?如何註冊一個Javascript函數以便在每次回發時運行?
ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "key" + DateTime.Now.Ticks, "RestorePosition();", true);
爲了任何人尋找這個答案的利益,這裏是我終於做了這個工作。在ASCX頁面的頂部,我有下面的代碼:
<script type="text/javascript">
function pageLoad(sender, args) {
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(SavePosition);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(RestorePosition);
}
function SavePosition(sender, args) {
document.getElementById('hdnScrollSaver').value = document.getElementById('reportTreeViewdiv').scrollTop;
}
function RestorePosition(sender, args) {
document.getElementById('reportTreeViewdiv').scrollTop = document.getElementById('hdnScrollSaver').value;
}
</script>
然後我包裹在樹狀div標籤如下:
<div class="reportTreeView" id="reportTreeViewdiv">
<asp:TreeView ID="TreeView1" runat="server" OnTreeNodePopulate="TreeView1_TreeNodePopulate"
OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" PathSeparator="|" SkinID="ReportTreeView" />
</div>
希望這可以幫助別人。
這樣做了。謝謝您的幫助。 – Kevin 2010-03-19 14:04:36