Issue: 
Would like to have a dynamic (mult-value) table of detail rows for a Lotus Domino web form. The dynmic rows need to be updated on the client side with no round trips adding rows, removing rows, and updating rows.  
 
Solution: 
Attached are the snippets of code that Mindwatering uses to build such a form for clients. 
 
JS Header Code: 
 DetailRow-JSHeadFunctions.rtf 
 
JS OnLoad Code: 
 DetailRow-JS OnLoad.rtf 
 
Sample Form Layout:
| Row |   | Item GTIN/UPC |   | UPC / Store Number |   | Store Item Num. |   | Item Damaged |   | Item Description |  
[D_RowSel] 
<br><br> |   | [D_UPCIn] 
<br><br> |   | [D_IsPLUIn] 
<br><br> |   | [D_PLUIn] 
<br><br> |   | [D_IsDamageIn] 
<br><br> |   | [D_DescIn] 
<br><br> |  
  |   |   |   |   |   |   |   |   |   |   |  
  |   | <Add / Update Row Btn> |   |   |   |   |   |   |   | <Remove Row Btn> |  
[D_RowNum] 
<br><br> |   | [D_UPC] 
<br><br> |   | [D_IsPLU] 
<br><br> |   | [D_PLU] 
<br><br> |   | [D_IsDamage] 
<br><br> |   | [D_Desc] 
<br><br> |  
 
 
[D_RowSel] - Combox / Editable 
Hide/When: Open for Reading 
Use formula for choices: 
"New" 
 
OnChange Event: 
ToggleGetRow(); 
f.FM_UPCIn.focus(); 
 
------ 
 
[D_UPCIn] - Text/ Editable 
Hide/When: Open for Reading 
Default value: "" 
Input Translation: "" 
HTML Atributes: "Size=\"14\" Maxlength=\"14\"" 
 
------ 
 
[D_IsPLUIn] - Radio Button / Editable 
Hide/When: Open for Reading 
Default value: "N" 
Enter choices [one per line]: 
Yes | Y 
No | N 
 
Input Translation: "N" (Optional, include if you want it to reset back to default between saves) 
 
------ 
 
[D_ItemNumIn] - Text/ Editable 
Hide/When: Open for Reading 
Default value: "" 
Input Translation: "" 
HTML Atributes: "Size=\"9\" Maxlength=\"14\"" 
 
------ 
 
[D_IsDamgeIn] - Radio Button / Editable 
Hide/When: Open for Reading 
Default value: "N" 
Enter choices [one per line]: 
Yes | Y 
No | N 
 
Input Translation: "N" (Optional, include if you want it to reset back to default between saves) 
 
------ 
 
[D_DescIn] - Text/ Editable 
Hide/When: Open for Reading 
Default value: "" 
Input Translation: "" 
HTML Atributes: "Size=\"24\" Maxlength=\"24\"" 
 
------ 
 
<Add / Update Row > Button Action - Common JavaScript (We have maximum row check here at 16 - 15 is 16 with 0 LBound ) 
Hide/When: Open for Reading 
onClick code: 
// validate row values 
if(CheckFldMax(f.D_UPCIn, 15) == true) { 
	return false; 
} 
if(CheckRowFields() == true) { 
	UpdateRowFields(); 
	f.D_UPCIn.focus(); 
} else { 
	return false; 
} 
 
------ 
 
<Remove Row > Button Action - Common JavaScript 
Hide/When: Open for Reading 
onClick code: 
// remove the current row selected values from list 
RemoveRow(); 
f.D_UPCIn.focus(); 
 
------ 
 
[D_RowNum] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "0" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"2\""	(Update 16 to the row limit desired.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
[D_UPC] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"16\""	(Update row 16 to the row limit desired.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
[D_IsPLU] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"5\""	(Update row 16 to the row limit desired.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
[D_PLU] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"16\""	(Update row 16 to the row limit desired.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
[D_IsDamage] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"5\""	(Update row 16 to the row limit desired.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
[D_Desc] - Text / Editable / Multi-value (checked)  
Multi-Value Options - Separate: Comma, Semicolon, New Line, Blank Line / Display: New Line 
Default Value: "" 
Input Translation: @Trim(@ThisValue) 
HTML Atributes: "rows=\"16\" cols=\"25\""	(Update row 16 to the row limit desired, cols is one more than line select to make sure no accidental wrapping.) 
on Focus Event: 
f.D_UPCIn.focus; 
 
------ 
 
  
previous page
 
  |