簡體   English   中英

如何將帶有clickHandler的錨添加到GWT中的ListGridRecord

[英]How to add Anchor with clickHandler to ListGridRecord in GWT

我需要將帶有clickHandler的Anchor添加到ListGridRecord。 單擊以錨定應調用該函數(向ListGrid添加更多行)。 我可以用href編寫Anchor:

private void addAnchorToRecord(ListGridRecord rec) {
    String img  = "<img src='pict/Plus.png'/>";
    Anchor myAnchor = new Anchor(img, true, "example.html");
    String value = myAnchor.toString();
    rec.setAttribute("versions", value);
}

但是這段代碼:

private void addAnchorToRecord(final ListGridRecord rec) {
    String img  = "<img src='pict/Plus.png'/>";
    Anchor myAnchor = new Anchor(img, true);
    myAnchor.addClickHandler(new ClickHandler() {
           @Override
           public void onClick(ClickEvent event) {
               addExtraRows(rec);
           }
        });
    String value = myAnchor.toString();
    rec.setAttribute("versions", value);
}

不起作用。 我看到圖像,但是單擊后什么都沒有發生。 在第二種情況下

value = "<a href="javascript:;" class="gwt-Anchor"><img src="pict/Plus.png"></a>"

我認為在這個地方我失去了有關clickHandler的信息。 在這種情況下如何成功添加ClickHandler?

編輯

我使用了LinkItem:

private void updateVersions(final ListGridRecord rec) {
    LinkItem linkItem = new LinkItem("link");  
    linkItem.setTitle("LinkItem");  
    linkItem.setLinkTitle("Click Me");  
    linkItem.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            showPreviousVersions(rec);
        }
    });
    rec.setAttribute("versions", linkItem);
}

然后在我的單元格中只有“ [object Object]”

我需要的功能:將屬性設置為ListGridRecord,它具有圖標和clickHandler。

如果僅在ListGridRecord中添加一個按鈕,然后向該按鈕添加一個clickhandler,則將更加容易。 必須這樣完成:

配置ListGrid時:

    setShowRecordComponents      (true );
    setShowRecordComponentsByCell(true );

設定欄位時

    ...
    ListGridField btnField= new ListGridField("btnFieldName", " ");
    ...

然后像這樣重寫createRecordComponent:

 @Override
 protected Canvas createRecordComponent(final ListGridRecord record, final Integer colNum){
        if(getFieldName(colNum).equalsIgnoreCase(("btnFieldName"))){
               IButton btn= new IButton("");
               //configure the button
               btn.addClickHandler(new ClickHandler() {
                  @Override
                  public void onClick(ClickEvent event) {
                    //your logic
                  }
               });
               return btn;
         }
     return super.createRecordComponent(record, colNum);
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM