我有一些代码,见下文。这是一个对话框,其中包含一个列表框供用户选择一个或多个选项,文本字段用于输入电子邮件地址。
当我将一个viewScope变量作为捕获电子邮件地址的值时,该字段变得像只读一样。如果我删除了值= viewScope .....该字段显示为可编辑的边框等。
如何让字段可编辑并将值存储在范围变量中,以便在单击提交按钮时使用?
仅供参考,列表框工作正常。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:panel id="panelJenarkCurrentYearReportsMain">
<xp:panel id="panelJenarkCurrentYearReportsInner">
<xe:dialog id="dialogCurrentReports" title="Fetch Current Year Reports">
<xp:div styleClass="lotusMessage lotusInfo" role="alert">
<xp:listBox id="listBoxJenarkCurrentYearReports" value="#{viewScope.jenarkCurrentYearReports}"
multiple="true" style="height:150.0px;width:98%;margin-left:5px"
required="true">
<xp:selectItems id="selectItems1">
<xp:this.value><![CDATA[#{javascript:var db = new Array( @DbName()[0], "dbWorkflow\\reference" );
result = @DbLookup(db, "($VSYSCTLKW)", "*ALL*ALL*ALLJenarkCurrentYearReports", "KWValues" );
if (result && typeof result == "string")
result = new Array(result);
return result;
}]]></xp:this.value>
</xp:selectItems>
<xp:this.validators>
<xp:validateRequired
message="Please Select one or more Current Year Reports!" />
</xp:this.validators>
</xp:listBox>
<xp:panel>
<xp:label value="Send Reports To:"
id="labelJenarkReportsEmailTo"
style="width:20%;padding-left:3.0px;margin-left:3.0px">
</xp:label>
</xp:panel>
<xp:panel>
<xp:inputText id="inputTextJenarkReportsEMailTo"
style="width:75%;padding-left:3.0px;margin-left:5.0px"
value="#{javascript:viewScope.jenarkReportEMail;}" required="true">
<xp:this.validators>
<xp:validateRequired
message="Please Enter a valid email Address!">
</xp:validateRequired>
</xp:this.validators>
</xp:inputText>
</xp:panel>
</xp:div>
</xe:dialog>
</xp:panel>
</xp:panel>
</xp:view>
答案 0 :(得分:2)
将您的值定义更改为
private void Button_Click(object sender, RoutedEventArgs e)
{
tabTwo.IsSelected = true;
FocusManager.SetFocusedElement(tabTwo, txtTwo);
}
必须使用表达式语言(EL)。这样,inputText控件不仅知道如何读取viewScope变量的当前值,还知道将用户的输入值写入的位置。
如果您使用value="#{viewScope.jenarkReportEMail}"
启动表达式,那么它将执行JavaScript代码并将当前值"#{javascript:..."
作为inputText的值插入。就像一个字符串,而不是一个可以写入的变量。这就是为什么inputText无法写入并将其自身显示为“只读”的原因。