基于单元格值的Xpages数据表单元格颜色
我试图使用xpages数据表,并根据单元格值将列中单元格的颜色设置为不同。我发现,尽管datatable绑定到视图,并且指定了集合(以获取行值),但样式部分似乎不可用 以下是一个例子:基于单元格值的Xpages数据表单元格颜色,xpages,Xpages,我试图使用xpages数据表,并根据单元格值将列中单元格的颜色设置为不同。我发现,尽管datatable绑定到视图,并且指定了集合(以获取行值),但样式部分似乎不可用 以下是一个例子: <xp:dataTable id="dataTable8" rows="30" var="doc1"> <xp:this.value><![CDATA[#{javascript:var View:NotesView = DivisionsView; View.getAllEn
<xp:dataTable id="dataTable8" rows="30" var="doc1">
<xp:this.value><![CDATA[#{javascript:var View:NotesView = DivisionsView;
View.getAllEntriesByKey("ViewName")}]]></xp:this.value>
<xp:column id="column1" style="width:75px;font-family:Tahoma">
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:doc1.getColumnValues()[1]
}]]></xp:this.value>
<xp:this.style><![CDATA[#{javascript:v=doc1.getColumnValues()[1];
if(v=="Yes"){"background-color:rgb(255,0,0)"}}]]></xp:this.style>
</xp:text>
<xp:this.facets>
<xp:label value="Header" id="label1" xp:key="header">
</xp:label>
</xp:this.facets>
</xp:column>
</xp:dataTable>
这只是显示了一个doc1未找到错误。这是否意味着绑定到datatable的数据对其样式部分不可用?有办法做到这一点吗
如有任何建议,将不胜感激
编辑:我无法根据“视图条目”值更改表格单元格样式,这里有一个exmaple抛出doc1 not found错误:
<xp:column id="column1">
<xp:this.style><![CDATA[#{javascript:v=doc1.getColumnValues()[1];
if(v=="Yes"){"background-color:rgb(255,0,0)"}}]]></xp:this.style>
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:doc1.getColumnValues()[1]
}]]></xp:this.value>
</xp:text>
<xp:this.facets>
<xp:label value="Header" id="label1" xp:key="header">
</xp:label>
</xp:this.facets>
</xp:column>
我希望您在代码中签入一些内容 首先是绑定数据的代码:
var View:NotesView = DivisionsView;
View.getAllEntriesByKey("ViewName")
什么是分区视图?要绑定的实际代码如下所示:
var View:NotesView = database.getView("ViewName");
View.getAllEntriesByKey("KeyName")
v = doc1.getColumnValues()[1];
if (v=="Yes") {
"background-color:rgb(255,0,0)"
}
其次,在要添加样式的代码中,您在if
条件中使用了单个=
而不是=
。所以代码应该是这样的:
var View:NotesView = database.getView("ViewName");
View.getAllEntriesByKey("KeyName")
v = doc1.getColumnValues()[1];
if (v=="Yes") {
"background-color:rgb(255,0,0)"
}
这些建议是否有效?我希望您在代码中签入一些内容 首先是绑定数据的代码:
var View:NotesView = DivisionsView;
View.getAllEntriesByKey("ViewName")
什么是分区视图?要绑定的实际代码如下所示:
var View:NotesView = database.getView("ViewName");
View.getAllEntriesByKey("KeyName")
v = doc1.getColumnValues()[1];
if (v=="Yes") {
"background-color:rgb(255,0,0)"
}
其次,在要添加样式的代码中,您在if
条件中使用了单个=
而不是=
。所以代码应该是这样的:
var View:NotesView = database.getView("ViewName");
View.getAllEntriesByKey("KeyName")
v = doc1.getColumnValues()[1];
if (v=="Yes") {
"background-color:rgb(255,0,0)"
}
这些建议有效吗?我已经放弃使用数据表,而是通过在表行上重复操作来完成工作。这样,我就可以控制整行的样式,从而控制每个单元格的样式。在datatable中,您似乎无法这样做,因为选项都是基于数据列的。谢谢你的帮助,不过我已经放弃了数据表,而是通过在表行上重复来完成工作。这样,我就可以控制整行的样式,从而控制每个单元格的样式。在datatable中,您似乎无法这样做,因为选项都是基于数据列的。感谢您的帮助,尽管样式表属性不仅为列中的每个值呈现,而且为每行计算。这也包括方面 这意味着,如果列有页眉和/或页脚,则会为这些不可见的行计算样式表属性,但没有行值(doc1) 如果更改代码并添加try/catch,您可以看到结果
<xp:column id="column1">
<xp:this.style>
<![CDATA[#{javascript:
try{
v=doc.getColumnValues()[1];
if(v=="Yes"){"background-color:rgb(255,0,0)"}
}catch(e){
return "background-color:rgb(255,0,255)";
}}]]>
</xp:this.style>
...
...
</xp:column>
...
...
样式表属性不仅为列中的每个值呈现,而且为每行计算。这也包括方面
这意味着,如果列有页眉和/或页脚,则会为这些不可见的行计算样式表属性,但没有行值(doc1)
如果更改代码并添加try/catch,您可以看到结果
<xp:column id="column1">
<xp:this.style>
<![CDATA[#{javascript:
try{
v=doc.getColumnValues()[1];
if(v=="Yes"){"background-color:rgb(255,0,0)"}
}catch(e){
return "background-color:rgb(255,0,255)";
}}]]>
</xp:this.style>
...
...
</xp:column>
...
...
很抱歉,我应该声明DivisionView绑定到自定义控件。这适用于所有样式问题。您的建议是正确的,很抱歉,这是一个打字错误,因为您试图简化要在此处发布的代码。还有其他建议吗?谢谢,请更新您的问题以更正打字错误,这样其他人就不会感到困惑了。代码应该可以正常工作,没有任何问题。变量doc1
应在style
属性中可用。是否有其他地方使用了可能导致问题的doc1
变量。是否更新了原始问题。我已经查看了它是否是唯一的变量,并且它是唯一的,我还将变量名称更改为test,同一问题-参考doc1 not found对不起,我应该声明divisisview绑定到自定义控件。这适用于所有样式问题。您的建议是正确的,很抱歉,这是一个打字错误,因为您试图简化要在此处发布的代码。还有其他建议吗?谢谢,请更新您的问题以更正打字错误,这样其他人就不会感到困惑了。代码应该可以正常工作,没有任何问题。变量doc1
应在style
属性中可用。是否有其他地方使用了可能导致问题的doc1
变量。是否更新了原始问题。我已经查看了它是否是唯一的变量,并且它是唯一的,我还将变量名更改为test,同一问题-参考doc1未找到您是否尝试过在不使用文档值的情况下设置this.style?我还认为这可能发生在页面加载上,在它将文档加载到数据表之前。也许可以尝试使用一个子句来检查doc1是否存在,如果不存在,则传递一个默认样式。嗨,我尝试过在没有文档值的情况下使用this.style,这很有效。我还检查了doc1是否存在-使用doc1.getcolumnvalues()[1]将值放入表中没有问题Right,但dataTable的结构中有一些东西可以在呈现之前检查文档是否存在。我认为有可能您的代码试图在页面加载时编译,而没有加载结构。我可能是错的。我不知道怎样才能证明你的理论。如果你设置一个简单的页面,你会得到同样的结果吗?只是为了排除我是一个eeediot.我已经用上面的代码创建了一个简单的XPage。工作正常,没有任何问题。您是否尝试过在不使用文档值的情况下设置此.style?我还认为这可能发生在页面加载上,在它将文档加载到数据表之前。也许可以尝试使用一个子句来检查doc1是否存在,如果不存在,则传递一个默认样式。嗨,我尝试过在没有文档值的情况下使用this.style,这很有效。我还检查了doc1是否存在-putti