我使用Request.Form [" someName"]来拉取控件所持有的值,但我正在寻找一种允许我设置值的类似方法控制。
复制粘贴的代码很多,但这里有一些我需要这种特定方法的原因。
正在复制表格中的行并通过JavaScript将其插入HTML中 - 这会禁用我使用" FindControl"找到控件(我已经尝试过了)
我最终希望对这些控件进行验证。想象一下以下(非常简化的例子)。
<table>
<tr>
<td>
<asp:TextBox id="txt__1" runat="server" />
<asp:CustomValidator ID="cvalTxt__1" />
</td>
</tr>
</table>
在某个按钮上单击,表行被复制并插入到下面以创建以下内容(通过JavaScript,这就是我无法显式设置值的原因)
<table>
<tr>
<td>
<asp:TextBox id="txt__1" runat="server" />
<asp:CustomValidator ID="cvalTxt__1" />
</td>
</tr>
<tr>
<td>
<asp:TextBox id="txt__2" runat="server" />
<asp:CustomValidator ID="cvalTxt__2" />
</td>
</tr>
</table>
我有一种功能方法可以使用Request.Form和容器的UniqueID属性在代码隐藏(C#)中获取这些控件的值,但是需要一种方法来根据几个内容设置自定义验证器此表单中的其他文本框。
是否有类似于Request.Form的方法可用于将此表中特定验证器的值从我的C#代码后面设置为true?
感谢您提出任何建议。
答案 0 :(得分:0)
访问控件及其内容和属性的方法是访问代表控件的对象。例如。而不是阅读<h:inputText value="#{registrationBean.email}" id="email" label="#{msgs.email}" validatorMessage="Incorrect e-mail…">
<f:validateLength minimum="5" maximum="50" />
<f:validateRegex pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
</h:inputText>
<h:message for="email"/>
,您应该使用Form[MyControl.UniqueID]
。以类似的方式,您可以设置内容,例如使用this.MyControl.Text
。
要设置验证器的属性,请使用
this.MyControl.Text = "Some value"
如果验证器是动态创建的,您应该可以使用Page.Validators集合访问它。