データテーブルにバインドするグリッドビューがあります。条件がある行に対してコンテキストを追加したいと思います。今、私はグリッド上でコンテキストメニューを表示するには、このコードを書いグリッドビューの一部の行のコンテキストメニューを表示するには
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;
});
});
問題は、私は任意のコンテキストメニューが表示されないです(コンテキストメニューを探検ない私はRowDataBound
イベントでこのコードを使用します私のカスタムコンテキストメニューではありません)HasMenu
cssクラスがなく、HasMenu
cssクラスを持つ行のコンテキストメニューを表示します。スクリプトに必要な変更はありますか?あなたは、個々の行にそれを変更する必要があると思い
$("#" + '<%= GridView1.ClientID %>')
:
おかげで
それはIEのコンテキストメニューがない 'HasMenu'クラス – Arian
@Kerezoを持っている行に表示される原因:はい、私はあなたが全体のメニューにリスナーを追加することを最初は気付きませんでした。私の編集を参照してください。 –
ブラウザがIEでRowがHasMenuクラスでない場合、contextmenuハンドラ中にfalseを返します。 – rt2800