gpt4 book ai didi

html - GWT 包装表格并以编程方式操作内容

转载 作者:行者123 更新时间:2023-11-28 03:32:56 26 4
gpt4 key购买 nike

我有一个格式良好的 HTML 表格(HTML 文本由报告工具生成),我想将它变成一个GWT 中的“可编程”表格。我需要显示提供的内容,但我还需要检查 DOM、获取表格并添加 ClickHandler到行和单元格。

我可以对图像做类似的事情:

Html html = new HTML(htmlText);
ImageElement domElement = getChildImageByTagAndId(html.getElement(), "img", "blah");
Image image = Image.wrap(domElement);
image.addClickHandler(...);

我的问题是:使用表格执行此操作的正确方法是什么?

我找不到 <table> 的 wrap() 方法, <tr> , 和 <td>元素。

注意:此问题已在已接受答案的评论中提出(但未回答)here .

最佳答案

我不知道用子 tr 和 td 元素包装现有表格的简单方法。

考虑到您依赖第三方工具的限制,我建议尝试构建一个自定义表解析器来解析现有表,构建一个 FlexTable,然后用新的 FlexTable 替换现有表。

虽然这很丑陋,但我不确定是否有更好的方法...

这可能取决于表格的设置方式,但您可以尝试使用类似下面的示例来遍历现有表格并使用 getNodeValue() 构建 FlexTable 的内容....

Element table = DOM.getElementById("someTableId");

int numTopNodes = table.getChildNodes().getLength();

for(int topNode = 0; topNode < numTopNodes; topNode++){

Node top = table.getChildNodes().getItem(topNode);
System.out.println("Top Node: "+top);


for(int subNode = 0; subNode < top.getChildCount(); subNode ++){

Node sub = top.getChildNodes().getItem(subNode);
System.out.println("Sub Node: "+sub);

for(int rows = 0; rows < sub.getChildCount(); rows ++){

Node row = sub.getChildNodes().getItem(rows);
System.out.println("Row: "+row);


for(int cells = 0; cells < row.getChildCount(); cells++ ){

Node cell = row.getChildNodes().getItem(cells);

System.out.println("CELL: "+cell.getNodeValue()); // use value to build to build a new FlexTable


}


}


}


}

关于html - GWT 包装表格并以编程方式操作内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com