我现在碰到个问题:
DataGrid很长,里面有模板列文本框,
在文本框输入完值后会回传服务器。
如果用户把滚动条拖到最右边输入值,输入完值一回传滚动条会又自动回到左边了。
请问有什么办法让它不回滚吗?
我问了好多人,有的说定位,有的说什么设焦点??
但具体的都说不清楚,也没有例子。
俺还是不懂。
今晚就要交差。愁死了求求各位帮帮忙了,非常感谢了。。

解决方案 »

  1.   

    不明白意思,呵呵,是不是页面刷新了,然后回到初始页面那样啊?
    如果是没特别要求的话
    if(!Page.IsPostBreak)
    {}
      

  2.   

    打错了是
    if(!Page.IsPostBack)
    {}
      

  3.   

    不是页面刷新,是在datagrid里的文本框输入值后,文本框触发了change事件。
    然后datagrid就自动刷新的,滚动条就又回到了左边。
    怎样才能让txt回传服务器change了。datagrid滚动条还是在用户拉到的位置上。???
      

  4.   


    if(!Page.IsPostBack)
    {
    load语句
    }
      

  5.   

    那就是刷新啦,

    if(!Page.IsPostBack)
    {
      把绑定DATAGRID的代码写在里面就行了。
    }
      

  6.   

    记得前几天有人问,给了一段代码,今天改后重新贴出来,应该可以解决你的问题,记得结贴。public static void RetainScrollPosition()
    {
    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();