我用到的是一个下拉列表.在选择下拉列表是(autopostback==true),只更新指定的datagrid,不用更新页面,并保持原来的位置....ok? 至少做到不滚动到顶保持原来的位置可以吗?

解决方案 »

  1.   

    我们在DataGrid外面加了来使DataGrid在一定区域内呈现,这样如果把滚动条拉到底部的时候点击修改(或者修改后点击更新,取消)页面重新加载的时候都会把滚动条拉到页面最上面部分 <div style="BORDER:0px;PADDING:0px;MARGIN:0px;OVERFLOW:scroll;WIDTH:600px;HEIGHT:200px" align="center">
    现在给出一种简单的办法(其他的一些利用锚点等办法都比较复杂)
    private void Scroll(int index)
            {
                string s="<script>function window.onload(){document.all('"+this.DataGrid1.ClientID+"').rows["+index+"].scrollIntoView();}</script>";
                Page.RegisterStartupScript("",s);
            }
    写了一个方法,其中DataGrid1换成自己的DataGrid的ID,这个方法传递进去的参数就是行号,也就是e.Item.ItemIndex。
    比如在编辑操作的时候会写this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
    在此语句的以前加入Scroll(e.Item.ItemIndex);就可以了
    同样在更新操作的时候写为Scroll(e.Item.ItemIndex);this.DataGrid1.EditItemIndex=-1;绑定; 
      

  2.   

    try:<%@ Page SmartNavigation="true"%>
      

  3.   

    只更新部分页面可以用xmlhttp或者隐藏的frame/iframe即可,另外
    select也不要设置为AutoPostBack=true
      

  4.   

    <%@ Page SmartNavigation="true"%>
      

  5.   

    http://community.csdn.net/Expert/topic/3495/3495124.xml?temp=.8568079
    找到相关的了..谢谢大家