6 个解决方案
#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;绑定;
现在给出一种简单的办法(其他的一些利用锚点等办法都比较复杂)
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
可以设置一个隐藏的input,当滚动时,触发客户端的onscroll事件,将DataGrid的滚动条位置写入隐藏的input,回发时生成脚本,利用window.scrollTo滚动到特定位置
#3
Scroll(e.Item.ItemIndex) 是写在这个有datagird画面的 迁移按钮里面的吗? 那回到这个画面是不是自动记住位置的
#4
ding
#5
onscroll 只有form里面有。 div 和 datagird 里面没有onscroll这个事件阿?
#6
参考
http://singlepine.cnblogs.com/articles/257213.html
把datagrid放到div中就可以实现了
http://singlepine.cnblogs.com/articles/257213.html
把datagrid放到div中就可以实现了
#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;绑定;
现在给出一种简单的办法(其他的一些利用锚点等办法都比较复杂)
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
可以设置一个隐藏的input,当滚动时,触发客户端的onscroll事件,将DataGrid的滚动条位置写入隐藏的input,回发时生成脚本,利用window.scrollTo滚动到特定位置
#3
Scroll(e.Item.ItemIndex) 是写在这个有datagird画面的 迁移按钮里面的吗? 那回到这个画面是不是自动记住位置的
#4
ding
#5
onscroll 只有form里面有。 div 和 datagird 里面没有onscroll这个事件阿?
#6
参考
http://singlepine.cnblogs.com/articles/257213.html
把datagrid放到div中就可以实现了
http://singlepine.cnblogs.com/articles/257213.html
把datagrid放到div中就可以实现了