簡體   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