[英]Show Telerik RadWindow from Server while maintaining scroll position
在滾動到頁面底部時顯示RadWindow時,該窗口將呈現在頁面頂部,並且我必須向上滾動才能看到該窗口。
我通過設置'MaintainScrollPositionOnPostback'來保持后退滾動位置:
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
我有一個RadListView,其中ItemTemplate中有一個按鈕。 單擊該按鈕時,將顯示RadWindow模態。
問題是,如果我滾動到頁面底部並單擊按鈕,頁面將在頁面頂部顯示該窗口,然后向下滾動到用戶滾動到的位置(由於MaintenanceScrollPositionOnPostback)。 因此窗口將顯示在屏幕之外,直到用戶向上滾動
如何顯示RadWindow在回發時用戶在哪里滾動? (不在頁面頂部)
我嘗試過以不同的方式顯示RadWindow 2,但兩者的結果相同
方法1:
Window.VisibleOnPageLoad = true;
方式2:
string script = "function f(){$find(\"" + RadWindow1.ClientID + "\").show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true);
在show()
周圍添加一個超時,以便在打開RadWindow之前進行滾動。 否則,將發生以下情況:
回發返回,頁面不滾動
RadWindow顯示,位於當前視口的中心
滾動移動,因此您的RadWindow不在您期望的位置
這是一個例子:
string script = "function f(){setTimeout(function(){$find(\"" + RadWindow1.ClientID + "\").show(); },111);Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
您可以在此處調整我為說明目的添加的111ms超時。 使用0作為自變量也可以滿足要求。 老實說,我不知道滾動需要多長時間。
順便說一句,我將在標記中創建一個JS函數,該函數將RadWIndow的ID作為參數並調用它,以使代碼更具可讀性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.