<x:insertRow>

x:insertRow 操作用来对使用 x:select 操作生成的结果集添加一新行。如果它的主体包含任何用于为新行提供值的 x:column 标记,则立即将新行插入到数据库中。否则,向结果集添加一空行作为占位符,以后,可以使用 x:updateRow 操作在该处设置值并更新数据库。

x:select 操作中引用的同一连接信息将用于 x:insertRow 操作。

缺省情况下,此操作在当前行旁边插入一行。请查看下面的 rows 属性的描述,以了解如何在其他位置插入行。首先将当前行中的任何更改应用于数据库。操作结束时,插入的行成为当前行。

除非此操作发生在 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>

或者:

<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>

反馈