我在SketchUp中有一个数据数组,我需要将其以表格格式呈现给html。我有一个硬编码的代码示例。
ID = [["Harry", "22", "Male"],["Sam", "19", "Male"],["Christine", "23", "Female"]]
dialog = UI::HtmlDialog.new(
{
:dialog_title => "Personal Info",
:scrollable => true,
:resizable => true,
:width => 500,
:height => 250,
:left => 200,
:top => 200,
:min_width => 50,
:min_height => 50,
:max_width =>1000,
:max_height => 500,
:style => UI::HtmlDialog::STYLE_DIALOG
})
for i in 0...Facelayers.length do
html = "
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid black;
}
</style>
<body>
<h2>Personal Info</h2>
<table style='width:75%'>
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
<tr>
<td>#{ID[0][0]}</td>
<td>#{ID[0][1]}</td>
<td>#{ID[0][2]}</td>
</tr>
<tr>
<td>#{ID[1][0]}</td>
<td>#{ID[1][1]}</td>
<td>#{ID[1][2]}</td>
</tr>
<tr>
<td>#{ID[2][0]}</td>
<td>#{ID[2][1]}</td>
<td>#{ID[2][2]}</td>
</tr>
</table>
</body>
</html>
"
dialog.set_html(html)
dialog.show
i=i+1
end
如果您在SketchUp中运行此程序,您将得到以下输出...
输出是完美的,不能得到任何更好的。但问题是,它的硬编码。
你会注意到'ID'数组中有三个名字、年龄和性别不同的人,但是如果我有四个人呢?或者五个?甚至十个?
这里的这部分需要循环。有人能帮我创建一个循环,将所有必要的信息打印到html吗?
谢谢你的帮忙!
2条答案
按热度按时间egmofgnx1#
Ruby脚本
结果
yiytaume2#
这不是构建HTML对话框的最佳方法。构建一个基本的HTML页面要好得多,您可以使用
sketchup.get_init_data()
和js从HTML向ruby发送请求以形成表格。get_init_data
是ruby中定义的方法,并注册到add_action_callback
方法。你应该使用这种模式的原因是如果表格变得复杂或者你有很多其他的表格,用ruby来组织HTML字符串会非常困难。