- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个小型应用程序,其中我将各种文件位置存储在 Vaadin 网格中,该网格当前仅显示两列 - ID
和File Name
,并且每当我单击一行时,我也希望看到文件位置的通知。
意思是,每次我单击网格中的一行时,我希望它使用 Notification.show()
显示位置。 ,像这样:
(请忽略 <b></b>
,它们是不相关的。)
因为我的网格选择模型是 MULTI
,默认情况下,单击监听器无法注册它被单击的行,并且通过复选框选择该行不是我想要显示的数据。简而言之,我想获取我单击的每一行的项目,并将位置显示为通知。
到目前为止,我找到了类似问题的解决方案,但它处理 Vaadin 网格中的列和行与我习惯的有很大不同。
public static <T> void addColumnClickListener(Grid<T> grid, Consumer<Column<T>> listener)
{
String expression = "function(){const col=element.getEventContext(event).column;return col ? col.id : '';}()";
grid.getElement().addEventListener("click", e ->
{
String colId = e.getEventData().getString(expression);
Optional<Column<T>> column = grid.getColumns().stream().filter(col -> colId.equals(col.getId().get())).findFirst();
column.ifPresent(listener);
}
).addEventData(expression);
}
我要这样调用该函数:
addColumnClickListener(grid, column -> Notification.show("fubar"));
此代码片段来自the Vaadin forums我不太明白。字符串expression
似乎它包含可能的 JavaScript 代码,其余部分覆盖列的类型。 (我想,我真的不完全理解这个片段)
有什么方法可以做与上面的代码片段类似但针对行的事情吗?
最佳答案
您可以使用网格上的 ItemClickListener 来执行此操作:
grid.addItemClickListener(item -> {
Notification.show(String.format("File location: %s", item.getLocation()));
});
关于java - 使用 SelectionMode.MULTI 将行添加/创建点击事件到 Vaadin 网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60168288/
在 WPF 程序中使用 ListBox 时,我遇到了一个相当奇怪的问题。我已经将我的 ListBox SelectionMode 定义为 Single,但看起来即使在视觉上我无法选择多个项目,它也会在
我有一个 Web 部件,我想在列表框中选择多个项目,非常简单。我正在使用 webcontrols 命名空间。所以我将列表框声明为列表框 lBox = new 列表框();lBox.ID="lbox";
将列表框选择模式设置为多扩展时,我观察到三种选择项目的方法: 按住 shift 键的同时按下鼠标键 按住 ctrl 键的同时按下鼠标键 在将鼠标移到未选择的项目上时按下鼠标键 1 和 2. 正是我想要
抱歉,标题含糊不清,我想不出一个好的方法来总结正在发生的事情。 我有一个绑定(bind)的 WPF 列表框:
我有一个 ListView,我想指定选择(项目)模式。在等效的 WPF 控件中有 ListView.SelectionMode属性(property)。 Windows 窗体是否有相同的属性? 最佳答
如何禁用列表框中的选择? 最佳答案 方法 1 - ItemsControl 除非您需要 ListBox 的其他方面,否则可以使用 ItemsControl 来代替。它将项目放置在 ItemsPanel
在我的 WP8 应用程序中,我使用带有多选选项的 ListPicker 控件。在我的页面中,我正在从自定义类列表中加载 Listpicker 数据。我可以通过实现 SummaryForSelected
我有一个 List 的 List 并用嵌套的 ListBoxes 显示它: MainWindow.xaml.cs using System.Collections.Generic; namespace
我有一个 ListBox 并希望扩展选择模式。我还想实现拖放功能。现在的问题是,如果鼠标点击所选项目,它将立即被选择为单选,而不是等待鼠标向上事件来执行此操作。 由于这种行为,用户几乎不可能开始拖动多
我遇到了一些很奇怪的,简单的 WPF 应用程序 后面有代码 public class ViewModel { public List Strings
在 Windows 窗体中,如果我创建一个包含几行和几列的简单 DataGridView 控件,然后将 SelectionMode 属性设置为 FullRowSelect,剪贴板的复制功能会出现奇怪的
例如,在处理 ListView 时,有一种方法可以定义其选择模式,如下所示: ListView lstV = new ListView(); lstV.setItems(FXCollections.o
我有一个 DataGridView,其中 SelectionMode=FullRowSelect 和 MultiSelect=False。 当用户单击一行时,它会按预期被选中。但是,再次单击同一行不会
WPF 的默认行为 DataGrid如果SelectionMode="Extended" 是在单击一行时选择这就是我想要的,但是我也希望该行取消选择,如果它以前在单击时已经被选中。 我已经尝试了以下操
我有一个 WPF ListBox我想 在 ListBox 中启用多项选择, 和 将 ListBox 数据绑定(bind)到我的 View 模型。 这两个要求似乎不相容。我的 View 模型有一个 Ob
我有一个可编辑的 DataGridView,其 SelectionMode 设置为 FullRowSelect(因此当用户单击任何单元格时,整行都会突出显示)。不过,我希望当前具有焦点的单元格以不同的
我正在尝试创建一个小型应用程序,其中我将各种文件位置存储在 Vaadin 网格中,该网格当前仅显示两列 - ID和File Name ,并且每当我单击一行时,我也希望看到文件位置的通知。 意思是,每次
我有一个 dojox.grid.DataGrid,我想在其中以编程方式选择一行。我正在使用 setSelected() 这样做并且它第一次起作用。但是,为不同的行再次调用它会使前一行突出显示。此外,如
我想最大化 Gridview 中的项目选择,以便用户应该选择 1 或 2 个项目。在 XAML 中,SelectionMode 中只有预定义选项,例如 Multiple、Extended、Single
我的 ListBox.SelectedValue 返回第一个选定的项目,而不是当前选定的项目。 (当前选中的item是指除了选中的items,我还显示了last item选中的) 这次我的 Selec
我是一名优秀的程序员,十分优秀!