0

我有一个带有两个“RadWizardSteps”和两个不同的“ValidationGroups”的“RadWizard”控件(来自 Telerik)。

当我单击第一个按钮 (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>
4

1 回答 1

1

您的代码有两种可能导致此问题。这些解释如下。

  • 使用RequiredFieldValidatorfor radcombobox 时,您必须记住正在验证 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>
于 2018-09-05T18:07:56.493 回答