如何在DropDownList项目的右键单击上创建上下文菜单?

约翰·保罗·史密斯迪尔

我有一个asp:DropDownList我从数据库中填充的。我希望能够右键单击任何一项,并通过显示包含该项目那些选项的上下文菜单来删除编辑该项目。关于如何执行此操作或是否可行的任何想法?

控制论

正如@ freedomn-m所指出的,您需要创建自己的下拉列表。

例如,您可以执行以下操作:

添加一些html来保存下拉列表:

<button id='dog_button'>Dogs</button>
<div id='hold'></div>

添加一些CSS样式:

body {
  font-family: arial; 
}

button {
  width: 200px;
  height: 40px;
  border: none; 
  border-radius: 3px;
  font-size: 17px;
  font-weight: bold;
  background: gold; 
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
  cursor: pointer;
  outline: 0;
}

.show {
  width: 180px;
  display: inline-block;
  background: #dedede;
  padding: 10px;
}

.square {
  border: 1px solid black;
  width: 20px;
  height: 20px;
  text-align: center;
  float: right;
  padding-top: 3px;
  cursor: pointer;
}

.ops {
  cursor: pointer;
}

使用jQuery填充下拉列表,并根据需要添加ID。右键单击您的选择选项时,可以使用甜蜜警报来处理弹出选项

categories_and_ops = {
    'Dog Beds' : ['Soft Dog Beds','Matress Dog Beds','Plastic Dog Beds','3 Peaks','Dog Blankets','Heating Dog Beds', 'Specific Dog Beds', 'Luxury Dog Beds'],
    'Dog Coats' : ['...','...','...','...','...','...', '...', '...']
}

$('#dog_button').click(function() {
$.each(categories_and_ops, function(cat, op) {
  div_id = 'div_' + Math.floor(Math.random() * 6);
  $('#hold').append("<div class='show' id=" + div_id + "></div><br>")
  $('#' + div_id).append("<span style='color:orange; font-weight: bold'>" + cat + "</span><div class='square'>-</div><br>" + '<br>') 
  op.forEach(function(op_elem) { 
  op_id = 'op_' + Math.floor(Math.random() * 100000); $('#' + div_id).append('&nbsp;&nbsp;&nbsp;' + "<span id=" + op_id + " class='ops'>" + op_elem + "</span>" + '<br><br>');
  $('#' + op_id).contextmenu(function() { delete_edit(); return false;    });
  })
  })
  })

$(document).on('mouseover', '.ops', function() { $(this).css('background', 'grey') })
$(document).on('mouseleave', '.ops', function() { $(this).css('background', '#dedede') })

$(document).on('click', '.square', function() {
if($(this).html() == '-') {
  $(this).parent().children('.ops').toggle();
  $(this).html('+');
  } else {
  $(this).parent().children('.ops').toggle();
  $(this).html('-');
  }
  })

function delete_edit() {
    swal({
    html: "<button id='del_button'>DELETE</button><br><br><button id='edit_button'>EDIT</button>",
    showConfirmButton : false
    }).catch(swal.noop)
    }

$(document).on('click', '#del_button', function() {
    alert('DELETED!')
})

$(document).on('click', '#edit_button', function() {
    alert('ADD YOUR EDIT CODE!')
})

结果

在此处输入图片说明

这是JSFIDDLE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java Swing中创建右键单击上下文菜单?

如何在JavaScript中禁用右键单击上下文菜单

如何在Chrome的信息亭模式下右键单击/长按禁用上下文菜单?

如何使上下文菜单出现在datagridview单元的右键单击上

如何在Gtk.TreeView上单击鼠标右键显示上下文菜单?

禁止右键单击元素打开上下文菜单

如何检测超链接的右键单击上下文菜单中的哪个选项被单击?

用PyGObject右键单击上下文菜单

如何创建上下文菜单,这些菜单在oracle apex报表中单击鼠标右键?

如何禁用右键单击事件或如何隐藏Autodesk Forge Viewer上的上下文菜单

如何从Windows的右键单击(上下文)菜单中删除项目?

从右键单击(上下文)菜单中删除Windows内置项目

禁用右键单击上下文菜单?

如何在TableView rowDelegate中单击鼠标右键显示上下文菜单

右键单击添加上下文菜单。

AutoHotkey脚本,用于“右键单击上下文菜单”命令

AutoHotkey脚本,用于“右键单击上下文菜单”命令

如何在Windows 10中禁用右键单击上下文菜单?

如何在窗口10的右键单击上下文菜单中添加cmd删除选项

右键单击上下文菜单

右键单击Android上下文菜单

右键单击上下文菜单后,获取选定的项目

Python IDLE从右键单击上下文菜单中消失了

在Ubuntu 17.10中,如何在右键单击上下文菜单中添加条目,例如“在终端中打开”?

如何在单击鼠标左键而不是单击鼠标右键时打开D3.js上下文菜单

如何从上下文菜单中右键单击获取项目的ID或详细信息?

如何在 Android Studio 的右键单击上下文菜单中添加重新格式化代码选项?

在 React 中禁用 Firefox 的右键单击上下文菜单

如何用鼠标右键单击列表视图项上的上下文菜单?