我现在碰到个问题:
DataGrid很长,里面有模板列文本框,
在文本框输入完值后会回传服务器。
如果用户把滚动条拖到最右边输入值,输入完值一回传滚动条会又自动回到左边了。
请问有什么办法让它不回滚吗?
我问了好多人,有的说定位,有的说什么设焦点??
但具体的都说不清楚,也没有例子。
俺还是不懂。
今晚就要交差。愁死了求求各位帮帮忙了,非常感谢了。。
DataGrid很长,里面有模板列文本框,
在文本框输入完值后会回传服务器。
如果用户把滚动条拖到最右边输入值,输入完值一回传滚动条会又自动回到左边了。
请问有什么办法让它不回滚吗?
我问了好多人,有的说定位,有的说什么设焦点??
但具体的都说不清楚,也没有例子。
俺还是不懂。
今晚就要交差。愁死了求求各位帮帮忙了,非常感谢了。。
如果是没特别要求的话
if(!Page.IsPostBreak)
{}
if(!Page.IsPostBack)
{}
然后datagrid就自动刷新的,滚动条就又回到了左边。
怎样才能让txt回传服务器change了。datagrid滚动条还是在用户拉到的位置上。???
if(!Page.IsPostBack)
{
load语句
}
加
if(!Page.IsPostBack)
{
把绑定DATAGRID的代码写在里面就行了。
}
{
Page _page =(Page)HttpContext.Current.Handler;
StringBuilder ScrollPosition = new StringBuilder();
_page.RegisterHiddenField("__SCROLLTOP", "0");
_page.RegisterHiddenField("__SCROLLLEFT", "0");
ScrollPosition.Append("<SCRIPT LANGUAGE=\"JavaScript\">\n<!--\n");
ScrollPosition.Append(" function saveScrollPosition() {\n");
ScrollPosition.Append(" document.forms[0].__SCROLLTOP.value = document.body.scrollTop;");
ScrollPosition.Append(" document.forms[0].__SCROLLLEFT.value = document.body.scrollLeft;");
ScrollPosition.Append("\n }\n document.body.onscroll=saveScrollPosition;\n");
if ( _page.IsPostBack )
{
ScrollPosition.Append(" function setScrollPosition() {\n");
ScrollPosition.AppendFormat(" document.body.scrollTop = {0};\n", _page.Request["__SCROLLTOP"]);
ScrollPosition.AppendFormat(" document.body.scrollLeft = {0};\n", _page.Request["__SCROLLLEFT"]);
ScrollPosition.Append("\n }\n document.body.onload=setScrollPosition;\n");
}
ScrollPosition.Append("//-->\n<"+"/SCRIPT>");
_page.RegisterStartupScript("jsRetainScrollPosition", ScrollPosition.ToString());
}在Page_Load事件中加上:RetainScrollPosition();