Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 禁用GWT网格_Java_Gwt - Fatal编程技术网

Java 禁用GWT网格

Java 禁用GWT网格,java,gwt,Java,Gwt,好的,我有一个GWT数据网格 DataGrid<T> grid 数据网格 现在我想禁用它,这样用户就不会以任何方式滚动或乱动它。有办法吗 它没有实现setEnabled(),因此我必须提供自己的实现。当禁用UI元素时,它看起来会有所不同-这是UI设计的一个好原则。当您说“禁用”DataGrid时,不清楚您将如何与用户通信它已禁用。例如,滚动条将保持可见,标题将看起来可单击,等等 想到的唯一解决方案是用半透明的弹出面板(又名“玻璃”)覆盖DataGrid。它将消耗所有用户操作,因此

好的,我有一个GWT数据网格

DataGrid<T> grid
数据网格 现在我想禁用它,这样用户就不会以任何方式滚动或乱动它。有办法吗


它没有实现setEnabled(),因此我必须提供自己的实现。

当禁用UI元素时,它看起来会有所不同-这是UI设计的一个好原则。当您说“禁用”DataGrid时,不清楚您将如何与用户通信它已禁用。例如,滚动条将保持可见,标题将看起来可单击,等等


想到的唯一解决方案是用半透明的弹出面板(又名“玻璃”)覆盖DataGrid。它将消耗所有用户操作,因此它将阻止与DataGrid的任何交互。

如果您只想阻止用户在网格上做奇怪的事情,也许您可以捕获事件并调用preventDefault方法

比如说

dataGrid.addDomHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            event.preventDefault();
        }

}, ClickEvent.getType());

它可以使用CSS来完成

getElement().getStyle().setProperty("opacity", "0.6");
getElement().getStyle().setProperty("pointerEvents", "none");
当再次启用时,请执行以下操作:

getElement().getStyle().setProperty("opacity", "1");
getElement().getStyle().setProperty("pointerEvents", "");

好主意。我这样做了,它似乎火了,但它不能阻止任何点击。我还添加了一个ScrollHandler,它似乎永远不会启动。如果要阻止滚动,这将帮助您检索datagrid的scrollPanel并向itOk添加一个ScrollHandler,ScrollHandler启动,但不会阻止滚动。奇怪的是,您是否尝试过event.getNativeEvent().preventDefault()?尝试过,结果相同(即,它会开火,但不会阻止任何东西)。