右键点击GridView获取该行的信息。

jwy0126 2009-02-24 09:12:09
<div id="userpane" style="OVERFLOW-X:hidden" >
<asp:UpdatePanel ID="ChatListPanel" runat="server" UpdateMode=Conditional >
<ContentTemplate>
<asp:GridView ID="OnlineUserGridView" runat="server" AutoGenerateColumns="False"
OnRowDataBound="GVSelect_RowDataBound" Width="100%">
<Columns>
<asp:BoundField DataField="UserName" HeaderText="在线用户" >
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
</Columns>
</asp:GridView>
登陆时间:<asp:Label ID="Label2" runat="server" Text="系统时间"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
现在右键点击GridView后如何获取当前行的信息?用JS来实现。
...全文
916 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
xj150145223 2009-08-28
  • 打赏
  • 举报
回复
学习中,我也用到gridview。。
simwol 2009-04-27
  • 打赏
  • 举报
回复
jwy0126,你好,能否把你实现GridView右键菜单的完整代码发给我?我是菜鸟,现正要用右键菜单,看了上面的讨论还是无法把它组织完整,谢谢!
请你到http://topic.csdn.net/u/20090427/17/197cda4d-b6d5-41a6-bc5e-5e8039caeecd.html,我结贴给你分,肯请帮忙,谢谢!
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
if(document.activeElement == document.getElementById('控件ID'))
------------
我米用过这类判断,就不下什么判断了。
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 jimu8130 的回复:]
我看不太可能,照你说的只有gridview和display(右键菜单),那么触发右键也只能是gridview的某一行
[/Quote]
我开始没用你说的那种方法来限制右键区域,我就想通过那句if(........)来限制。
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
我看不太可能,照你说的只有gridview和display(右键菜单),那么触发右键也只能是gridview的某一行
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
既然如此,那你还加上if(document.activeElement == document.getElementById('控件ID')) 干嘛?其他控件并没有和display方法绑定,
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 jimu8130 的回复:]
e.Row.Attributes.Add("onmousedown", "display()");
JS: function display()
{
if (event.button == 2)
{
//右键菜单函数
fresh();
}

}
display函数里边写if(document.activeElement == document.getElementById('控件ID')) 反而变成任何区域都没有右键菜单了,真的奇怪。。。。
------------------

[/Quote]
我的右键菜单只给GridView调用,我只在GridView加载的时候调用display()方法啊,在display()方法里才有加载右键菜单的函数。
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
e.Row.Attributes.Add("onmousedown", "display()");
JS: function display()
{
if (event.button == 2)
{
//右键菜单函数
fresh();
}

}
display函数里边写if(document.activeElement == document.getElementById('控件ID')) 反而变成任何区域都没有右键菜单了,真的奇怪。。。。
------------------
请问上面这个dispaly函数是仅仅被gridview单击使用还是有其他地方调用?


引用 21 楼 jimu8130 的回复:
难道是updatepanel外的控件不起作用?

理论上
e.Row.Attributes.Add("onmousedown", "display()");应该只会给GridView行点击的时候才注册display()这个方法,可为什么却是全区域的?
--------------------------------
绑定display方法不是在点击的时候进行绑定吧?都是在gridview加载数据的时候对方法进行绑定,而当鼠标右键点击其中记录的时候触发display方法,请问你的右键菜单是只针对gridview还是其他控件都有可能调用?
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 jimu8130 的回复:]
难道是updatepanel外的控件不起作用?
[/Quote]
理论上
e.Row.Attributes.Add("onmousedown", "display()");应该只会给GridView行点击的时候才注册display()这个方法,可为什么却是全区域的?
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 w5223336 的回复:]
不要需要索引吗?
通过索引获得ID
再从数据库查也可以吧
[/Quote]
我做的是聊天室,就是不想用数据库撒,用数据查信息我知道。我就像最大的提高效率,所以连聊天记录都是存放在Application里边的,呵呵。
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 jimu8130 的回复:]
难道是updatepanel外的控件不起作用?
[/Quote]
e.Row.Attributes.Add("onmousedown", "display()");
JS: function display()
{
if (event.button == 2)
{
//右键菜单函数
fresh();
}

}
display函数里边写if(document.activeElement == document.getElementById('控件ID')) 反而变成任何区域都没有右键菜单了,真的奇怪。。。。
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
难道是updatepanel外的控件不起作用?
w5223336 2009-02-24
  • 打赏
  • 举报
回复
不要需要索引吗?
通过索引获得ID
再从数据库查也可以吧
waitling23 2009-02-24
  • 打赏
  • 举报
回复
Up
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
不知道大家有什么好的办法限制右键区域的???
if(document.activeElement == document.getElementById('控件ID'))
{
//加载右键菜单的方法
}
为什么起不了限制作用?
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 jimu8130 的回复:]
C#:
e.Row.Attributes.Add("onkeypress", "display()");
JS:
function display()
{
if (event.button == 2)
{
alert('元素');
}
}
按道理应该我在GridView里边点击右键就会弹出一个窗体,为何不弹?
-----------------------
不好意思,应该不是用onkeypress--这个是针对键盘的,应该用onmousedown
[/Quote]
恩,我也一时忘记了。
jwy0126 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chenjunsheep 的回复:]
引用 9 楼 jimu8130 的回复:
RowDataBound只是页面加载的时候调用。
-------------------
错误,而是gridview加载数据调用,另外这个只是为gridview的数据行绑定一个单击方法而已,并不触发单击方法。


已经说得很明显了,楼主动手做做就知道了
[/Quote]
我明白是绑定方法了,关键是我不知道我的为什么绑定之后连个框框都弹不出。。。
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
C#:
e.Row.Attributes.Add("onkeypress", "display()");
JS:
function display()
{
if (event.button == 2)
{
alert('元素');
}
}
按道理应该我在GridView里边点击右键就会弹出一个窗体,为何不弹?
-----------------------
不好意思,应该不是用onkeypress--这个是针对键盘的,应该用onmousedown
chenjunsheep 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jimu8130 的回复:]
RowDataBound只是页面加载的时候调用。
-------------------
错误,而是gridview加载数据调用,另外这个只是为gridview的数据行绑定一个单击方法而已,并不触发单击方法。
[/Quote]

已经说得很明显了,楼主动手做做就知道了
lsgy2008 2009-02-24
  • 打赏
  • 举报
回复
学习
加载更多回复(17)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧