Rad 向导控件中的两个验证组
Two Validation Groups in a Rad Wizard Control
我有一个 "RadWizard" 控件(来自 Telerik),有两个 "RadWizardSteps" 和两个不同的 "ValidationGroups"。
当我单击第一个按钮 (BtnArrayAdd) 时,"TxtArrayName" 控件的验证工作正常。
当我单击第二个按钮 (BtnAdd) 时,验证仅检查 "TxtAttributeName" 控件而不检查 "CbAttributeType" 控件。
当我删除第一步时,两个控件(TxtAttributeName 和 CbAttributeType)的验证工作正常。
可能是什么问题?
谢谢,
多米尼克
<telerik:RadWizardStep ID="StepWebServiceOutArrays" runat="server" StepType="Auto">
<br />
<div class="sbLabel1"><asp:Label ID="LblArrayName" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadTextBox ID="TxtArrayName" runat="server" Width="200"></telerik:RadTextBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="TxtArrayNameValidator" runat="server" ControlToValidate="TxtArrayName" ValidationGroup="ArrayValidation" EnableClientScript="true" ForeColor="Red" ></asp:RequiredFieldValidator></div>
<br /><br /><br />
<telerik:RadButton ID="BtnArrayAdd" runat="server" CssClass="system" Width="100" OnClick="E_Click" ValidationGroup="ArrayValidation"></telerik:RadButton>
<telerik:RadButton ID="BtnArrayRemove" runat="server" CssClass="system" Width="100" OnClick="E_Click" CausesValidation="false"></telerik:RadButton>
<br />
</telerik:RadWizardStep>
<telerik:RadWizardStep ID="StepWebServiceOutAttributes" runat="server" StepType="Auto">
<br />
<div class="sbLabel1"><asp:Label ID="LblAttributeName" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadTextBox ID="TxtAttributeName" runat="server" Width="200"></telerik:RadTextBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="TxtAttributeNameValidator" runat="server" ControlToValidate="TxtAttributeName" ValidationGroup="AttributeValidation" EnableClientScript="true" ForeColor="Red" ></asp:RequiredFieldValidator></div>
<br /><br />
<div class="sbLabel1"><asp:Label ID="LblAttributeType" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadComboBox ID="CbAttributeType" runat="server" Width="200"></telerik:RadComboBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="CbAttributeTypeValidator" runat="server" ControlToValidate="CbAttributeType" ValidationGroup="AttributeValidation" EnableClientScript="true" ForeColor="Red"></asp:RequiredFieldValidator></div>
<br /><br /><br />
<telerik:RadButton ID="BtnAdd" runat="server" CssClass="system" Width="100" OnClick="E_Click" ValidationGroup="AttributeValidation"></telerik:RadButton>
<telerik:RadButton ID="BtnRemove" runat="server" CssClass="system" Width="100" OnClick="E_Click" CausesValidation="false"></telerik:RadButton>
<br />
</telerik:RadWizardStep>
您的代码有两种可能导致此问题。这些解释如下。
- 当为 radcombobox 使用
RequiredFieldValidator
时,您必须记住,正在验证 radcombobox 中所选项目的文本部分。因此,查看 RequiredFieldValidator
的标记,它仅在 radcombobox 中默认选定项的文本部分为空字符串时才有效。因此,请确保默认项的文本设置为空字符串。
- 如果radcombobox中默认项的文本部分不为空
字符串但类似
Select a Type
那么你需要做的就是
按照以下标记设置验证器的 InitialValue 属性。
默认项具有非空文本时的标记
<asp:RequiredFieldValidator ID="CbAttributeTypeValidator" runat="server"
ControlToValidate="CbAttributeType" ValidationGroup="AttributeValidation"
EnableClientScript="true" ForeColor="Red"
InitialValue="Select a type"></asp:RequiredFieldValidator>
我有一个 "RadWizard" 控件(来自 Telerik),有两个 "RadWizardSteps" 和两个不同的 "ValidationGroups"。
当我单击第一个按钮 (BtnArrayAdd) 时,"TxtArrayName" 控件的验证工作正常。
当我单击第二个按钮 (BtnAdd) 时,验证仅检查 "TxtAttributeName" 控件而不检查 "CbAttributeType" 控件。
当我删除第一步时,两个控件(TxtAttributeName 和 CbAttributeType)的验证工作正常。
可能是什么问题?
谢谢, 多米尼克
<telerik:RadWizardStep ID="StepWebServiceOutArrays" runat="server" StepType="Auto">
<br />
<div class="sbLabel1"><asp:Label ID="LblArrayName" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadTextBox ID="TxtArrayName" runat="server" Width="200"></telerik:RadTextBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="TxtArrayNameValidator" runat="server" ControlToValidate="TxtArrayName" ValidationGroup="ArrayValidation" EnableClientScript="true" ForeColor="Red" ></asp:RequiredFieldValidator></div>
<br /><br /><br />
<telerik:RadButton ID="BtnArrayAdd" runat="server" CssClass="system" Width="100" OnClick="E_Click" ValidationGroup="ArrayValidation"></telerik:RadButton>
<telerik:RadButton ID="BtnArrayRemove" runat="server" CssClass="system" Width="100" OnClick="E_Click" CausesValidation="false"></telerik:RadButton>
<br />
</telerik:RadWizardStep>
<telerik:RadWizardStep ID="StepWebServiceOutAttributes" runat="server" StepType="Auto">
<br />
<div class="sbLabel1"><asp:Label ID="LblAttributeName" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadTextBox ID="TxtAttributeName" runat="server" Width="200"></telerik:RadTextBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="TxtAttributeNameValidator" runat="server" ControlToValidate="TxtAttributeName" ValidationGroup="AttributeValidation" EnableClientScript="true" ForeColor="Red" ></asp:RequiredFieldValidator></div>
<br /><br />
<div class="sbLabel1"><asp:Label ID="LblAttributeType" runat="server"></asp:Label></div>
<div class="sbControl1"><telerik:RadComboBox ID="CbAttributeType" runat="server" Width="200"></telerik:RadComboBox></div>
<div class="sbLabel2"><asp:RequiredFieldValidator ID="CbAttributeTypeValidator" runat="server" ControlToValidate="CbAttributeType" ValidationGroup="AttributeValidation" EnableClientScript="true" ForeColor="Red"></asp:RequiredFieldValidator></div>
<br /><br /><br />
<telerik:RadButton ID="BtnAdd" runat="server" CssClass="system" Width="100" OnClick="E_Click" ValidationGroup="AttributeValidation"></telerik:RadButton>
<telerik:RadButton ID="BtnRemove" runat="server" CssClass="system" Width="100" OnClick="E_Click" CausesValidation="false"></telerik:RadButton>
<br />
</telerik:RadWizardStep>
您的代码有两种可能导致此问题。这些解释如下。
- 当为 radcombobox 使用
RequiredFieldValidator
时,您必须记住,正在验证 radcombobox 中所选项目的文本部分。因此,查看RequiredFieldValidator
的标记,它仅在 radcombobox 中默认选定项的文本部分为空字符串时才有效。因此,请确保默认项的文本设置为空字符串。 - 如果radcombobox中默认项的文本部分不为空
字符串但类似
Select a Type
那么你需要做的就是 按照以下标记设置验证器的 InitialValue 属性。
默认项具有非空文本时的标记
<asp:RequiredFieldValidator ID="CbAttributeTypeValidator" runat="server"
ControlToValidate="CbAttributeType" ValidationGroup="AttributeValidation"
EnableClientScript="true" ForeColor="Red"
InitialValue="Select a type"></asp:RequiredFieldValidator>