[英]How to Show Context Menu for some row in gridView
我有一个绑定到数据表的网格视图。我想为有条件的行添加上下文。 我在RowDataBound
事件中使用以下代码:
if (e.Row.Enabled == true && e.Row.Cells[6].Enabled == true)
{
e.Row.CssClass = "HasMenu";
}
现在,我编写以下代码以在网格上显示上下文菜单:
$(document).ready(function () {
$('#menu').click(function () {
$('#menu').hide();
});
$(document).click(function () {
$('#menu').hide();
});
$("#" + '<%= GridView1.ClientID %>').bind("contextmenu", function (e) {
$('#menu').css({
top: e.pageY + 'px',
left: e.pageX + 'px'
}).show();
return false;
});
});
问题是我不显示任何上下文菜单上没有的行(不是资源管理器右键菜单,而不是我的自定义上下文菜单) HasMenu
的行CSS类,并显示上下文菜单有HasMenu
CSS类。什么在我的脚本需要改变?
谢谢
现在,您正在收听整个gridview的contextmenu
事件:
$("#" + '<%= GridView1.ClientID %>')
您需要将其更改为单独的行:
$('#" + '<%= GridView1.ClientID %> rowselector.HasMenu')
但是,在rowselector
所在的地方,标记中定义了一行。
例如,如果某行是<TR>
则您将编写
$("#" + '<%= GridView1.ClientID %> tr.HasMenu')
否则,如果行是子<DIV>
元素,则可能需要编写如下内容
$("#" + '<%= GridView1.ClientID %> > div.HasMenu')
请注意,您要串联两个纯字符串,不涉及任何javascript变量。 您最好写:
$('#<%= GridView1.ClientID %> rowselector.HasMenu')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.