标题:[讨论]gridview 怎么响应浏览器端键盘上、下键??(已部分解决,再加油!谢谢, ...
只看楼主
ibiws
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-7-12
 问题点数:0 回复次数:6 
[讨论]gridview 怎么响应浏览器端键盘上、下键??(已部分解决,再加油!谢谢,呵呵...)
Gridview数据从数据库读出,数据库中存放零件,并存放相应的图片.现在的问题是:Gridview不能响应浏览器端键盘上、下键,并随着上下的移动切换相应的成件的二维简图。就是说键盘动的话Gridview表格选中不同的行,并且能把该行(零件)的图片信息显示页面的image控件中.

这对我很有难度,解决不了.希望各位高手能帮助指导下~~谢谢~
希望大家各抒自见~~

[此贴子已经被作者于2007-8-3 11:35:03编辑过]

搜索更多相关主题的帖子: 浏览器 gridview 键盘 加油 
2007-08-03 09:05
jyoseyi
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2007-6-14
得分:0 

感觉这是一个,不似问题的问题!你没鼠标啊?


我非英雄,广目无双, 我本坏蛋,无限嚣张!
2007-08-03 10:18
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
得分:0 
以下是引用ibiws在2007-8-3 9:05:00的发言:
Gridview数据从数据库读出,数据库中存放零件,并存放相应的图片.现在的问题是:Gridview不能响应浏览器端键盘上、下键,并随着上下的移动切换相应的成件的二维简图。就是说键盘动的话Gridview表格选中不同的行,并且能把该行(零件)的图片信息显示页面的image控件中.

这对我很有难度,解决不了.希望各位高手能帮助指导下~~谢谢~
希望大家各抒自见~~

在前台的页面加上JS脚本:如

<script type="text/javascript">
var currentRowId = 0;
function SelectRow()
{
if (event.keyCode == 40)
MarkRow(currentRowId+1);
else if (event.keyCode == 38)
MarkRow(currentRowId-1);
}

function MarkRow(rowId)
{
if (document.getElementById(rowId) == null)
return;

if (document.getElementById(currentRowId) != null )
document.getElementById(currentRowId).style.backgroundColor = '#ffffff';

currentRowId = rowId;
document.getElementById(rowId).style.backgroundColor = '#ff0000';
}
</script>

在后台添加一下index变量的声明,和在Gridview的RowDataBound绑定事件里写,如:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("id",index.ToString());
e.Row.Attributes.Add("onKeyDown", "SelectRow();");
e.Row.Attributes.Add("onClick", "MarkRow(" +index.ToString() + ");");

index++;
}
}


Knowledge is infinite.
2007-08-03 10:26
ibiws
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-7-12
得分:0 
回复:(sean88)以下是引用ibiws在2007-8-3 9:05:00的...
呵呵~谢谢您的回帖!
我程序代码里有您上面提供的一样的代码.这样实现了键盘上下移动表格的一行.但是移到一行后没有实现在image中显示该行(每行为一零件)的图片.我在后台写了如下函数:
protected void gv_QueryProduct_SelectedIndexChanged(object sender, EventArgs e)
{
string graphcode = gv_QueryProduct.SelectedDataKey.Value.ToString();
this.Image_query.ImageUrl = "~/ProductManagement/ShowPhoto.ashx?graphcode=" + graphcode;
}
这函数意思是不是说改变一行后在Image_query中有所响应.现在就是不知道怎样在您所提供代码里面加上这个函数?

这是否是关于前台调用后台函数的问题?请您指导下~~

还有希望大家看看,帮忙解决问题~呵呵~


希望大家多多指教~~
2007-08-03 11:34
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
得分:0 
以下是引用ibiws在2007-8-3 11:34:10的发言:
呵呵~谢谢您的回帖!
我程序代码里有您上面提供的一样的代码.这样实现了键盘上下移动表格的一行.但是移到一行后没有实现在image中显示该行(每行为一零件)的图片.我在后台写了如下函数:
protected void gv_QueryProduct_SelectedIndexChanged(object sender, EventArgs e)
{
string graphcode = gv_QueryProduct.SelectedDataKey.Value.ToString();
this.Image_query.ImageUrl = "~/ProductManagement/ShowPhoto.ashx?graphcode=" + graphcode;
}
这函数意思是不是说改变一行后在Image_query中有所响应.现在就是不知道怎样在您所提供代码里面加上这个函数?

这是否是关于前台调用后台函数的问题?请您指导下~~

还有希望大家看看,帮忙解决问题~呵呵~

这个是DataView的选中行后激发的事件,当选择行后Image_query响应的图片ImageUrl 是指向ShowPhoto.ashx这个资源文件,图片是否能正常显示,这主要看你ShowPhoto.ashx生成的图片了.

[此贴子已经被作者于2007-8-3 14:31:33编辑过]


Knowledge is infinite.
2007-08-03 14:28
ibiws
Rank: 1
来 自:哈尔滨
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-7-12
得分:0 
回复:(sean88)以下是引用ibiws在2007-8-3 11:34:10...
谢谢您~~
但是我还是不太明白~
通过e.Row.Attributes.Add("onKeyDown", "SelectRow();");实现了gridview的列响应键盘上下键移动,但是想在移动的时候实现this.Image_query.ImageUrl = "~/ProductManagement/ShowPhoto.ashx?graphcode=" + graphcode;就是说让Image_query.显示该行的图片的话,是否应该在函数"SelectRow();"里加什么东西啊?

谢谢!!


希望大家多多指教~~
2007-08-04 10:16
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
得分:0 
以下是引用ibiws在2007-8-4 10:16:07的发言:
谢谢您~~
但是我还是不太明白~
通过e.Row.Attributes.Add("onKeyDown", "SelectRow();");实现了gridview的列响应键盘上下键移动,但是想在移动的时候实现this.Image_query.ImageUrl = "~/ProductManagement/ShowPhoto.ashx?graphcode=" + graphcode;就是说让Image_query.显示该行的图片的话,是否应该在函数"SelectRow();"里加什么东西啊?

谢谢!!

不用在SelectRow函数里写什么东西,你只在DataView的这个SelectedIndexChanged事件加上这两句代码就行了.
protected void gv_QueryProduct_SelectedIndexChanged(object sender, EventArgs e)
{
string graphcode = gv_QueryProduct.SelectedDataKey.Value.ToString();
this.Image_query.ImageUrl = "~/ProductManagement/ShowPhoto.ashx?graphcode=" + graphcode;
}


Knowledge is infinite.
2007-08-06 11:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-160049-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021574 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved