当滚动到页面底部时显示RadWindow时,窗口将呈现在页面顶部,我必须向上滚动才能看到窗口。
我通过设置' MaintainScrollPositionOnPostback'来保持后滚动位置:
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
我有一个RadListView,其中ItemTemplate中有一个按钮。单击该按钮时,我显示RadWindow模式。
问题是,如果我滚动到页面底部并单击按钮,页面将显示页面顶部的窗口,但随后向下滚动到用户滚动的位置(由于MaintainScrollPositionOnPostback)。因此窗口显示在屏幕上,直到用户向上滚动
如何在回发时显示用户滚动的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);
答案 0 :(得分:0)
在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作为参数并调用它,只是为了使代码更具可读性