C# 在“自动页面刷新”面板上,滚动条向上
我想保持C# 在“自动页面刷新”面板上,滚动条向上,c#,asp.net,c#-4.0,telerik,C#,Asp.net,C# 4.0,Telerik,我想保持RadPanelBar的滚动位置。MyRadPanelBar位于自动刷新页面中。当我向下滚动RadPanelBar的条时,页面刷新时它会向上滚动。不应该。我试图用下面的代码处理它,但它不起作用。我错过什么了吗 这是我的JavaScript <script type="text/javascript"> function SetScrollPositionOnlineContacts() { //var pane = splitter.GetPaneById("Rad
RadPanelBar
的滚动位置。MyRadPanelBar
位于自动刷新页面中。当我向下滚动RadPanelBar
的条时,页面刷新时它会向上滚动。不应该。我试图用下面的代码处理它,但它不起作用。我错过什么了吗
这是我的JavaScript
<script type="text/javascript">
function SetScrollPositionOnlineContacts() {
//var pane = splitter.GetPaneById("RadPanelBarRoster");
//document.getElementById("RadPanelBarRoster").scrollTop;
var splitter =$find("RadSplitterBottomParent");
var intY = splitter.GetPaneById("RadPanelBarRoster").scrollTop;
var date = new Date();
date.setTime(date.getTime() + (1 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = "cookieDivOnlineContacts"
+ "="
+ intY
+ expires + "; path=/";
//document.title = intY;
}
function readCookieOnlineContacts(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
</script>
这是我的代码隐藏页:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StringBuilder sbScript = new StringBuilder();
sbScript.Append(
"<script language='JavaScript' type='text/javascript'>");
//For order Panel
sbScript.Append(
"document.cookie = cookieDivOnlineContacts + \"" +
"=\" + \"\" + -1 + \"; path=/\";");
sbScript.Append("</script>");
//// Make use ScriptManager to register the script
ScriptManager.RegisterStartupScript(
this,
this.GetType(),
"@@@@MyCallBackAlertScript",
sbScript.ToString(),
false);
}
StringBuilder sbScript1 = new StringBuilder();
sbScript1.Append(
"<script language='JavaScript' type='text/javascript'>");
//For order Panel
sbScript1.Append(
"var strCookOnlineContacts = " +
"readCookieRfqOrder(\"cookieDivOnlineContacts\"); " +
"document.getElementById(\"RadPanelBarRoster\").scrollTop " +
"= strCookOnlineContacts;");
sbScript1.Append("</script>");
// Make use ScriptManager to register the script
ScriptManager.RegisterStartupScript(
this,
this.GetType(),
"@@@@MyCallBackAlertScript",
sbScript1.ToString(),
false);
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
StringBuilder sbScript=新的StringBuilder();
sbScript.Append(
"");
//用于订单面板
sbScript.Append(
“document.cookie=cookieDivOnlineContacts+\”“+
“=\”+\“\”+“-1+\”;路径=/\”;”;
sbScript.Append(“”);
////使用ScriptManager注册脚本
ScriptManager.RegisterStartupScript(
这
this.GetType(),
“@@@@MyCallBackAlertScript”,
sbScript.ToString(),
假);
}
StringBuilder sbScript1=新的StringBuilder();
sbScript1.Append(
"");
//用于订单面板
sbScript1.Append(
“var strCookOnlineContacts=“+
“readCookieRfqOrder(\“cookieDivOnlineContacts\”);“+
“document.getElementById(\“RadPanelBarRoster\”).scrollTop”+
“=strCookOnlineContacts;”;
sbScript1.追加(“”);
//使用ScriptManager注册脚本
ScriptManager.RegisterStartupScript(
这
this.GetType(),
“@@@@MyCallBackAlertScript”,
sbScript1.ToString(),
假);
}
我是初学者,请提供适当的帮助。您正在尝试使用Cookie,这里还有一段代码,请尝试此alos, 将此代码放入JavaScript部分 这将在请求启动时保存滚动位置,并在页面完全呈现时存储向后滚动的位置
function pageLoad()
{
$("your radID").scroll(function() {
SaveScrollPosition();
});
}
var yPos;
function SaveScrollPosition(){
yPos = $("your rad bar id").scrollTop();
}
function ReturnPos() {
$("your radID").scrollTop(yPos);
}
function OnResponseEnd(sender ,eventArgs)
{
ReturnPos();
}
function OnRequestStart(sender ,eventArgs)
{
SaveScrollPosition();
}
这是你的html
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest" ClientEvents-OnRequestStart="OnRequestStart" ClientEvents-OnResponseEnd="OnResponseEnd">
// you code here
</telerik:RadAjaxManager>
//你在这里编码
我相信这会解决你的问题。谢谢
如果是解决方案,请将其标记为“应答”。是否尝试将maintainScrollPositionOnPostback页面指令设置为true?看看是否有帮助。嗨,阿泽姆·拉维,谢谢你的解决方案。
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest" ClientEvents-OnRequestStart="OnRequestStart" ClientEvents-OnResponseEnd="OnResponseEnd">
// you code here
</telerik:RadAjaxManager>