簡體   English   中英

從服務器顯示Telerik RadWindow,同時保持滾動位置

[英]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之前進行滾動。 否則,將發生以下情況:

  1. 回發返回,頁面不滾動

  2. RadWindow顯示,位於當前視口的中心

  3. 滾動移動,因此您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM