GWT FileUpload是一個小部件,可以在表單提交時上傳文件(至少這是我的理解:))我想要做的就是讓它更好看並擺脫標準的「瀏覽...」按鈕。包裝/裝飾GWT FileUpload
因爲我沒有很好的GWT經驗(也沒有JavaScript),所以我尋找現有的解決方案並找到了相當不錯的項目 - gwtupload。這很好,但我意識到我很想擁有自己的微縮版本(並且,我對它的工作原理感到好奇)。所以我瀏覽代碼並嘗試提取魔法部分。我意識到使用了GWT FileInput,但沒有顯示,並且Button單擊被委託給此FileInput。該代碼我試圖提取(只有一部分代表點擊)審查gwtupload來源後,包含此棘手elem.click()
JSNI:
class MyUpload extends Composite {
private static native void clickOnInputFile(Element elem) /*-{
elem.click();
}-*/;
public MyUpload() {
final FileUpload upload = new FileUpload();
AbsolutePanel container = new AbsolutePanel();
// container.add(upload);
Button btn = new Button("My Browse..");
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
clickOnInputFile(upload.getElement());
}
});
container.add(btn);
initWidget(container);
}
}
但這似乎不工作:點擊「我的瀏覽..」結果沒有效果(只是以防萬一我也嘗試使用未評論的container.add(upload)
行)。你能幫我理解這個代碼示例中的錯誤/缺失嗎?
預先感謝您。
P.S.我知道我必須將它放在FormPanel上,並且我知道剩下的關於如何在Servlet中執行實際提交/處理的內容;我唯一想做的就是這種裝飾。