小女子恳请高手一个问题
在panel中放一个gridview控件,gridview用来显示数据,数据多时现在panel能够自动出现滚动条,但是不知道选中一条数据后怎么把滚动条定位在那一条数据上,现在的情况是选中后面的一条数据时,滚动条自动蹦到最上面,需要拖动到选中那条数据的区域时才能看到被选中的那一行(选中的行显示颜色和未选中的不一样)。
请问怎么才能把滚动条定位到选中的那一行上?极度感谢!!!
问题点数:100、回复次数:39Top
1 楼WeekZero(∮小气的鬼∮)回复于 2006-06-08 09:52:05 得分 0
试,用js将选中的行上获得焦点,如,...focus();Top
2 楼hanchi8008(寒池)回复于 2006-06-08 09:53:15 得分 0
bang ding !Top
3 楼yistudio(阳光灿烂的日子)回复于 2006-06-08 09:53:34 得分 0
偏移Top
4 楼liushimen(不可一世)回复于 2006-06-08 09:53:58 得分 0
放gridview为什么要用panel啊,用DIV不是很好吗,而且不会出现你说的那种情况Top
5 楼snowvan(小学生)回复于 2006-06-08 09:54:23 得分 0
只要让你选的行获得焦点就可以了!Top
6 楼reaperwu(过程、方法、人)回复于 2006-06-08 09:54:33 得分 0
function SelectTR(tr)
{
var dataGrid = document.getElementById('dataGrid');
var trs = dataGrid.getElementsByTagName('TR');
for ( var i = 1; i < trs.length; i++ )
{
if ( trs[i] == tr )
{
trs[i].className = "tr_datagrid_select";
document.getElementById('panel').scrollTop = tr.offsetTop - 36;
}
else
{
trs[i].className = "tr_datagrid_content";
}
}
}Top
7 楼reaperwu(过程、方法、人)回复于 2006-06-08 09:55:32 得分 0
/// 数据绑定事件
private void dataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if ( e.Item.ItemIndex < 0 )
{
return;
}
e.Item.Attributes.Add("onclick", "javascript:SelectTR(this)");
}Top
8 楼ym2000(tt)回复于 2006-06-08 09:57:09 得分 0
我没想过把他定位到选中的这一条上因为它刷新了页面 我也不知道如何控制,我是用JS来做 比如说客户选中这条后想做一定处理 直接使用JS 来获得这条数据的在GRID上的信息然后再来处理 这样由于是在客户端处理就不会刷新页面了,还有一种(只是考虑了自己的方便没想过客户的意见)把选中的这一条通过数据库的处理把他排列到第一条这样也可以然后+上颜色Top
9 楼sbsrg3000(⊙⌒⊙怪事,这几天可用分又没增加....)回复于 2006-06-08 09:57:16 得分 0
mark and upTop
10 楼baiyashan(依浪道夫)回复于 2006-06-08 10:00:02 得分 0
顶你!!!Top
11 楼snowvan(小学生)回复于 2006-06-08 10:02:14 得分 0
你试一下在js里完成你的操作最后写一句return false 这样那个滚动条应该是不会动的! 调用js的地方写return JSname();Top
12 楼dgrwang(探索者)回复于 2006-06-08 10:03:00 得分 0
帮顶Top
13 楼snowvan(小学生)回复于 2006-06-08 10:03:51 得分 0
看来以后问问题标题要写 “小女子……” 人气呼高啊!!!^-^Top
14 楼snowvan(小学生)回复于 2006-06-08 10:04:53 得分 0
接分Top
15 楼ld_thinking(懒得想)回复于 2006-06-08 10:05:42 得分 0
顶小女子的贴Top
16 楼sorrow_man(不会我就问,零下一度)回复于 2006-06-08 10:14:09 得分 0
顶Top
17 楼may55()回复于 2006-06-08 10:43:40 得分 0
感谢大家的参与,更感谢reaperwu,不过用了你的方法还是不行,因为gridview和datagrid的事件还不大一样,gridview没有ItemCreated事件,我换成了 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)还是不行,不知道为什么,恳请百忙之中再次赐教。谢谢!!!还有就是:您的document.getElementById('panel').scrollTop = tr.offsetTop - 36;这句话中的36不知道是什么意思?
Top
18 楼reaperwu(过程、方法、人)回复于 2006-06-08 11:32:46 得分 0
-_-!...,没有用过vs2005
不过我想原理上是差不多的,点击选择行,PANEL滚动到选择行的位置上。
document.getElementById('panel').scrollTop = tr.offsetTop - 36;
只是把PANEL的滚动条移动到当前选择行的位置再加上36,这样设置可以把当前选择行显示在PANEL中间。Top
19 楼loverdotnet(西瓜)回复于 2006-06-08 11:38:58 得分 0
markTop
20 楼reaperwu(过程、方法、人)回复于 2006-06-08 11:39:34 得分 0
可能我的代码是针对 DataGrid 写的,现在只能写成这样
function SelectTR(tr)
{
document.getElementById('panel').scrollTop = tr.offsetTop - 36;
}Top
21 楼liushimen(不可一世)回复于 2006-06-08 11:40:04 得分 0
又是小女贴,人气就是高。Top
22 楼amandag(高歌)回复于 2006-06-08 11:45:08 得分 0
upTop
23 楼gnhao(何飞)回复于 2006-06-09 11:17:18 得分 0
又是小女贴,我看都结婚了吧,嘿嘿.别忘了下次改为弱女子,Top
24 楼gnhao(何飞)回复于 2006-06-09 11:18:15 得分 0
别骗善良的程序员哦Top
25 楼Nikko0080(三缺浪人)回复于 2006-06-09 11:28:08 得分 0
小女贴原来这么多人回复??
以后问问题考虑一下骗骗善良的程序员^_^Top
26 楼hui1202(骨灰)回复于 2006-06-09 11:54:08 得分 0
.......无语,为什么女人总是这么受欢迎?Top
27 楼Jeffris(第一缕阳光)回复于 2006-06-09 14:21:38 得分 0
主要坛子上的女人少Top
28 楼bufan2162(永远保持前进状态)回复于 2006-06-09 14:36:11 得分 0
用div就可以了
Top
29 楼longqzh()回复于 2006-06-09 14:52:33 得分 0
顶!!!Top
30 楼cj121074()回复于 2006-06-09 20:34:05 得分 0
做女人真爽,这么多高手为她想办法!
无语!!!!!!!!!!!!!!!Top
31 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2006-06-10 00:47:53 得分 0
用Callback吧,看看能否不刷新。否则就用Atlas的UpdatePanel。反正可以尝试一些ajax的方法避免刷新。Top
32 楼alby(批发各种型号黄瓜)回复于 2006-06-10 01:26:27 得分 0
充分说明写代码的都是性饥渴啊~!Top
33 楼fuyun_wjr()回复于 2006-06-10 01:26:45 得分 0
jf
楼上兄弟们已经提出解决方案了
Top
34 楼waxln(有点意思)回复于 2006-06-10 03:26:29 得分 0
是个女的就这么多人帮助呀 程序员的悲哀Top
35 楼reaperwu(过程、方法、人)回复于 2006-06-12 09:19:12 得分 0
看来我是充分说明并且写了代码,感觉挺无耻的
不知道有没有人比我更无耻,把这个问题给解决了,别让我在这丢人现眼Top
36 楼amandag(高歌)回复于 2006-06-12 09:36:11 得分 0
路过Top
37 楼lubosun(大白菜)回复于 2006-06-12 09:40:01 得分 0
小女贴原来这么多人回复??
以后问问题考虑一下骗骗善良的程序员^_^
=====================================
呵呵Top
38 楼airapple5(MiChAeL)回复于 2006-06-12 09:47:02 得分 0
程序员都是一群饥渴的MAN,哈哈:)Top
39 楼yigecainiao()回复于 2006-06-12 09:53:34 得分 0
100分~~jf啊 ~
我不会也要看下 顶一个Top




