2015-02-06 24 views
-1

在每個列標題的GWT中,有四個選項 - 按升序,降序,列,過濾器排序。我只想顯示過濾選項並隱藏所有其他選項。要完全禁用,我可以做column.setMenuDisabled(true)。如何禁用部分標題項目?在GWT中如何部分刪除列標題

另外我想知道如何屏蔽網格時數據在客戶端得到過濾。由於過濾是在客戶端完成的,因此grid.setloadmask不起作用。

代碼片段用於顯示列標題:

ColumnConfig myColumn = new DefaultColumnConfig("name", "name", 92, true); 
     myColumn.setAlignment(HorizontalAlignment.LEFT); 
     myColumn.setRenderer(new GridCellRenderer<ModelData>() { 

      @Override 
      public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, 
        ListStore<ModelData> store, Grid<ModelData> grid) { 
       return ClientUtils.getTextToolTip(model.get("name").toString()); 
      } 
     }); 
      myColumn.setMenuDisabled(false); 

setMenuDisabled設置當假顯示所有四個選項(升序排列/降序排序/列/過濾器)中的列標題。我只想過濾器可見。
正在使用的對手是GXT - com.extjs.gxt.ui.client.widget.grid.ColumnConfig。 如何控制這些列的菜單項?

+0

請附上到目前爲止你已經嘗試什麼樣。 – mmmmmpie 2015-02-06 14:40:14

+1

沒有像股票GWT組件中的「過濾器」和「隱藏所有」這樣的事情。請確定您正在使用哪個第三方小部件庫(SmartGWT?GXT?) – 2015-02-06 14:54:14

+0

'setMenuDisabled'方法可以在gxt中找到。你可以做的是迭代菜單,並根據他們的文本禁用你不想要的菜單項。這是一個黑客,但它會工作。這些過濾器是根據列的類型(字符串,日期等)自動生成的,我相信庫不會提供部分禁用它們的方法。只要你不需要任何東西,GXT就很棒。如果你這樣做,然後準備很多挫折。 – alkis 2015-02-06 15:18:29

回答

0

對於每一列的配置,設置如下:

columnConfig.setSortable(false); 
columnConfig.setHideable(false);