<x:insertRow>

x:insertRow 動作用來將新列新增至利用 x:select 動作產生的結果集中。如果它的主體含有任何提供了新列值的 x:column 標示,新列就會立即插入資料庫中。否則,會新增空列至結果集中來作為位置保留區,讓您稍後能利用 x:updateRow 動作來設定值及更新資料庫。

x:select 動作所參照的相同連線資訊也會用於 x:insertRow 動作。

依預設,這個動作會將列插入在現行列的旁邊。 不過,請參閱下面的列屬性說明,以瞭解將列插入其他位置的用法。 現行列的任何變更都會先套用至資料庫。 在動作之後,插入的列就會成為現行列。

這個動作會變更在插入列之後所有列的編號,但發生在 x:batch 動作內的情況除外,這時在 x:batch 結束之前,不會改變編號。

語法

<x:insertRow	 	name = "target bean name"
				row = "rowNumber"
				position = "before|after" > 
 	<x:column 		colName = "name"
 				index = "number"
 				value = "value"
				nullToken = "string" />
</x:insertRow>

  OR:

<x:insertRow	 	name = "target bean name"
				row = "rowNumber"
				position = "before|after" />

x:insertRow 動作有下列屬性:

name
這是列要插入其中的結果集所在之 DBSelect Bean 的名稱。這個值會區分大小寫,且必須符合在範圍內的 Select 變數。除非動作(直接或間接)是在已指定了 name 屬性的 x:repeat 主體內,否則便需要這個屬性。在這個情況下,name 屬性的預設值是最接近的含括的 x:repeat 中所指定的相同值。
row
定位插入的列時所用的結果集其中的列數。(1 值指第一列。) 這個屬性是選用的。 如果沒有指定的話,預設值會隨著這個動作是否在指定了 over="rows" 的 x:repeat 主體內而不同。如果是如此,就會使用該 x:repeat 的索引變數值。如果不是如此,就會使用結果集的現行列之索引。
position
指定列要插入目標列之前或之後。 預設值是將列插入目標列之前。

x:insertRow 動作的主體中可以有下列標示:

<x:column>
指定直欄應該設的值。

範例

這個範例會新增空列到結果集的現行列之後,不會執行資料庫插入作業。您必須稍後再利用 x:updateRow 動作來設定直欄值以及將列插入資料庫中。

<x:insertRow name="select1" position="after"></x:insertRow>

這個範例會新增一列到結果集的現行列之前,設定其直欄值,以及將它插入資料庫中。

<x:insertRow name="select1">
	<x:column colName="EMPNO"
		value='<%= request.getParameter("empnumber") %>' />
	<x:column colName="EMPNAME"
		value='<%= request.getParameter("empname") %>' />
	<x:column colName="COMMISSION"
		value='<%= request.getParameter("empcomm") %>' />
</x:insertRow>
讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.