Xpages 是否可以根据多行编辑框的值指定值

Xpages 是否可以根据多行编辑框的值指定值,xpages,Xpages,更新:代码减少并进一步描述了我正在尝试的这个web应用程序 <xp:text escape="true" id="computedField1"> <xp:this.value><![CDATA[#{javascript: sessionScope.DishNameValue; }]]></xp:this.value> </xp:text> <xp:br></xp:br> <xp:br><

更新:代码减少并进一步描述了我正在尝试的这个web应用程序

<xp:text escape="true" id="computedField1">
    <xp:this.value><![CDATA[#{javascript: sessionScope.DishNameValue;
}]]></xp:this.value>
</xp:text>
<xp:br></xp:br>
<xp:br></xp:br>
&#160;<xp:table style="width:636.0px">
    <xp:tr>
        <xp:td style="width:250.0px">
            <xp:inputTextarea id="inputTextarea2">
                <xp:this.value><![CDATA[#{javascript:
var selectedDishNameRestaurant =  @DbLookup(@DbName(),"RestaurantDishNameView",   (getComponent("computedField1").getValue()),3) 
if(selectedDishNameRestaurant != null)
{
    return selectedDishNameRestaurant;
}
else
{
    return "nothing here"
}
}]]></xp:this.value>
                <xp:this.multipleSeparator><![CDATA[#{javascript:"\n"}]]></xp:this.multipleSeparator>
                <xp:this.rendered><![CDATA[#{javascript:if(getComponent("computedField1").getValue() != null)
{
    return true;
}}]]></xp:this.rendered>
            </xp:inputTextarea>
        </xp:td>
        <xp:td style="width:250.0px">
            <xp:inputTextarea id="inputTextarea4">
                <xp:this.value><![CDATA[#{javascript:var selectedDishNameRestaurant = @DbLookup(@DbName(),"RestaurantDishNameView", (getComponent("computedField1").getValue()),3) 
var createdDishValue = @DbLookup(@DbName(),"CreatedDishView", selectedDishNameRestaurant,2); 
var restaurantDishValue = @DbLookup(@DbName(),"RestaruantDishView", createdDishValue,1);

if(creatededDishValue !=null){
return "Yes";
}
else
{ 
    return "No";
}


}]]></xp:this.value>
                <xp:this.multipleSeparator><![CDATA[#{javascript:"\n"}]]></xp:this.multipleSeparator>
                <xp:this.rendered><![CDATA[#{javascript:if(getComponent("computedField1").getValue() != null)
{
    return true;
}}]]></xp:this.rendered>
            </xp:inputTextarea>
        </xp:td>
        <xp:td style="width:250.0px">
            <xp:inputTextarea id="inputTextarea6">
                <xp:this.value><![CDATA[#{javascript:var   selectedDishNameRestaurant = @DbLookup(@DbName(),"RestaurantDishNameView",  (getComponent("computedField1").getValue()),3) 
var createdDishValue = @DbLookup(@DbName(),"CreatedDishView", selectedDishNameRestaurant,2); 
var restaurantDishValue = @DbLookup(@DbName(),"RestaruantDishView", createdDishValue,1);
var createdDate = @DbLookup(@DbName(),"RestaruantDishView", createdDishValue,2);
if(createdDishValue !=null){
return createdDate;
}
else
   { 
        return "";
    }
    }]]></xp:this.value>
                <xp:this.multipleSeparator><![CDATA[#{javascript:"\n"}]]></xp:this.multipleSeparator>
                <xp:this.rendered><![CDATA[#{javascript:if(getComponent("computedField1").getValue() != null)
{
    return true;
}}]]></xp:this.rendered>
            </xp:inputTextarea>
        </xp:td>
    </xp:tr>
</xp:table>

 
在第一页:

  • 用户将选择菜名或菜式(使用单选按钮组和组合框)在第二页中显示。(这部分很好用)
在第二页:

  • 将有一个计算字段来显示所选值。(这部分工作正常,因为我使用会话变量来存储值)

  • 有一个多行编辑框,它将根据计算字段的值在单独的行中显示值。例如,如果用户选择菜名,则会显示哪个餐厅有这道菜。在这一部分中,我使用@DbLookup来实现这个阶段,程序仍然可以正常工作)

  • 还有另一个多行编辑框。其显示值取决于第一个多行编辑框。例如,第一个多行编辑框可以显示具有特定菜名(由用户选择)的餐厅列表。第二个多行编辑框将显示该餐厅是否创建了该菜的值,如果该餐厅创建了该菜,则该值返回“是”,否则返回“否”

在这一部分中,无论第一个多行编辑框中有多少个值,我在第二个多行编辑框中只能得到一个“是”或一个“否”

有人能告诉我如何使第二个多行编辑框显示所有值吗?多谢各位

我尝试使用for循环,但没有使用

for (i = getComponent("inputTextarea2").getValue(); i < getComponent("inputTextarea2").length; i++)
for(i=getComponent(“inputTextarea2”).getValue();i
免责声明:我希望以下信息应该是评论,但我没有足够的权限这样做

这是我的想法。为什么你只有一个“是”或“否”,因为结果在这一部分:(如果我的概念是错误的,请纠正我)

由于createdDishValue不为null,它将返回“Yes”,因此如果@DbLookup计算正确,它将查找一个值。因此,如果有10个值,结果将只显示1个“是”或1个“否”。因此,如果需要返回10 Yes/No,则需要进行一些编程来实现这一点

请注意:我还没有尝试你的for循环代码,但我建议你看看这个网站:

根据该网站,它提到

for…in循环用于循环对象的属性

那么,在代码中尝试使用for-in-loop而不是for-loop怎么样


谢谢。

请将代码减少到最低限度:这将帮助您获得答案。整个内容已编辑:减少代码并改进内容。很抱歉给您带来不便。对于您看起来正在做的事情,请查看重复。多行编辑的设计更多是为了输入而不是显示。您可以在第一次重复(第一条多行字段)中设置值,以便第二次将选定值传递给您并刷新第二次重复。这里有很多例子向你展示。
if(creatededDishValue !=null){
    return "Yes";
 }
else
{ 
    return "No";
}