def emitrow(row_num, row_id=nil)
html = %|<tr #{row_id ? 'rownum="'+row_num+'"' : 'class="dummyrow"'}>|
row = fields.dup
row.each{ |f|
f.value=@pgresult.getvalue_byname(row_num,f.id) if row_id
f.name=f.id.gsub!(/^.+$/,"#{@id}_\\&#{row_num}")
row_html = f.field_tohtml
row_html.gsub!('%row_num%',row_num)
row_html.gsub!('%row_id%',row_id || 'new')
row_html.gsub!('%row_value%',f.value || '')
html<< %{<td#{' class="last"' if f==row.last}>#{row_html}</td>}
}
deleteableHTML = @deleteable ? '<button type="button" onclick="DynTable_DeleteRow(this)">Delete</button>' : ''
actionHTML= ValidForm::Hidden.new("action#{row_num}",nil,row_id ? nil : 'insert').field_tohtml
row_numHTML= ValidForm::Hidden.new("rownum",nil,row_num).field_tohtml
row_idHTML= row_id ? ValidForm::Hidden.new("id#{row_num}",nil,row_id).field_tohtml : ''
html<< %{<td class="end">#{deleteableHTML}#{actionHTML}#{row_idHTML}#{row_numHTML}</td>}
html<< %|</tr>\n|
html
end