繁体   English   中英

如何在gridView中显示某行的上下文菜单

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM