2017-04-26 4 views
0

J'ai une page avec deux detailsview et j'ai essayé d'ajouter un RequiredFieldsValidator pour tous les domaines et il a bien fonctionné, mais quand je l'ajoute ValidationGroup la validation ne fonctionne pas du toutRequiredFieldsValidatior asp.net C#

Qu'est-ce que le problème

Première DetailsView:

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
     CellPadding="4" DataKeyNames="Username" DataSourceID="SqlDataSource3" 
      ForeColor="#333333" GridLines="None" Height="50px" Width="267px" 
      style="margin-top: 0px; text-align: left;" 
      onitemupdated="DetailsView1_ItemUpdated" onitemdeleted="DetailsView1_ItemDeleted" 
      oniteminserted="DetailsView1_ItemInserted" DefaultMode="Insert"> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" /> 
     <EditRowStyle BackColor="#999999" /> 
     <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" /> 
     <Fields> 
      <asp:TemplateField HeaderText="Username" SortExpression="Username"> 
       <EditItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Eval("Username") %>'></asp:Label> 
       </EditItemTemplate> 
       <InsertItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Username") %>' 
         ValidationGroup="1" Width="100px"></asp:TextBox> 
        <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" 
         ErrorMessage="Required" ControlToValidate="TextBox1" ForeColor="Red" 
         ValidationGroup="1"></asp:RequiredFieldValidator> 
       </InsertItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label2" runat="server" Text='<%# Bind("Username") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Password" SortExpression="Password"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Password") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <InsertItemTemplate> 
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Password") %>' 
         Height="22px" ValidationGroup="1" Width="100px"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
         ControlToValidate="TextBox2" ErrorMessage="Required" ForeColor="Red" 
         ValidationGroup="1"></asp:RequiredFieldValidator> 
       </InsertItemTemplate> 
       <ItemTemplate> 
        <span ID="idControl">DetailsView1</span> - Field[1] - Password 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="UserType" SortExpression="UserType"> 
       <EditItemTemplate> 
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UserType") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <InsertItemTemplate> 
        <asp:DropDownList ID="DropDownList4" runat="server" 
         ConnectionString ="<%$ConnectionStrings: ConnectionString %>" 
         SelectedValue='<%# Bind("UserType") %>' ValidationGroup="1"> 
        <asp:ListItem>--Select--</asp:ListItem> 
        <asp:ListItem>employee</asp:ListItem> 
        <asp:ListItem>doctor</asp:ListItem> 
        <asp:ListItem>student</asp:ListItem> 
        </asp:DropDownList> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
         ControlToValidate="DropDownList4" ErrorMessage="Required" ForeColor="Red" 
         InitialValue="--Select--" ValidationGroup="1"></asp:RequiredFieldValidator> 
       </InsertItemTemplate> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("UserType") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:CommandField ButtonType="Button" ShowInsertButton="True" /> 
     </Fields> 
     <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
    </asp:DetailsView> 

Deuxième DetailsView:

<asp:DetailsView ID="DetailsView4" runat="server" AutoGenerateRows="False" 
      CellPadding="4" DataKeyNames="St_ID" DataSourceID="SqlDataSource4" 
      DefaultMode="Insert" ForeColor="#333333" GridLines="None" Height="50px" 
      Width="291px"> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
      <CommandRowStyle BackColor="#E2DED6" Font-Bold="True" /> 
      <EditRowStyle BackColor="#999999" /> 
      <FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" /> 
      <Fields> 
       <asp:TemplateField HeaderText="Student ID" SortExpression="St_ID"> 
        <EditItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("St_ID") %>'></asp:Label> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("St_ID") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
          ControlToValidate="TextBox1" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("St_ID") %>'></asp:Label> 
        </ItemTemplate> 
        <ItemStyle Width="120px" /> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Username" SortExpression="Username"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Username") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Username") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
          ControlToValidate="TextBox3" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label5" runat="server" Text='<%# Bind("Username") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Name" SortExpression="Name"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Name") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
          ControlToValidate="TextBox4" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label6" runat="server" Text='<%# Bind("Name") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Nationality" SortExpression="Nationality"> 
        <ItemTemplate> 
         <asp:Label ID="Label4" runat="server" Text='<%# Bind("Nationality") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Nationality") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:DropDownList ID="DropDownList5" runat="server" 
          SelectedValue='<%# Bind("Nationality") %>' ValidationGroup="2"> 
         <asp:ListItem>--Select--</asp:ListItem> 
         <asp:ListItem>Egypt</asp:ListItem> 
         <asp:ListItem>Jordan</asp:ListItem> 
         <asp:ListItem>Lebanon</asp:ListItem> 
         <asp:ListItem>Palestine</asp:ListItem> 
         <asp:ListItem>Sudan</asp:ListItem> 
         <asp:ListItem>Syria</asp:ListItem> 
         <asp:ListItem>UAE</asp:ListItem> 
         <asp:ListItem>Yemen</asp:ListItem> 
         </asp:DropDownList> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
          ControlToValidate="DropDownList5" ErrorMessage="Required" ForeColor="Red" 
          InitialValue="--Select--" ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Gender" SortExpression="Gender"> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("Gender") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Gender") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:DropDownList ID="DropDownList1" runat="server" 
          SelectedValue='<%# Bind("Gender") %>' ValidationGroup="2"> 
         <asp:ListItem>--Select--</asp:ListItem> 
         <asp:ListItem>Male</asp:ListItem> 
         <asp:ListItem>Female</asp:ListItem> 
         </asp:DropDownList> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
          ControlToValidate="DropDownList1" ErrorMessage="Required" ForeColor="Red" 
          InitialValue="--Select--" ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label3" runat="server" Text='<%# Bind("Major_ID") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="DateOfBirth" SortExpression="DateOfBirth"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("DateOfBirth") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox2" runat="server" TextMode="Date" 
          Text='<%# Bind("DateOfBirth") %>' ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
          ControlToValidate="TextBox2" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label2" runat="server" Text='<%# Bind("DateOfBirth") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="MobileNo" SortExpression="MobileNo"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("MobileNo") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("MobileNo") %>' 
          maxlength="10" ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
          ControlToValidate="TextBox7" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
         <br /> 
         <asp:RegularExpressionValidator ID="RegularExpresphone1" 
          ValidationGroup="phone" Display="Dynamic" ControlToValidate="TextBox5" 
          runat="server" ErrorMessage="Phone Number should be 10 Digits (only numbers)." 
          SetFocusOnError="True" ValidationExpression="^\d{10}$" Font-Bold="False" 
          ForeColor="Red"></asp:RegularExpressionValidator> 
         </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label7" runat="server" Text='<%# Bind("MobileNo") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Major" SortExpression="Major_ID"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Major_ID") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:DropDownList ID="DropDownList2" runat="server" 
          DataSourceID="SqlDataSource4" DataTextField="MajorName" 
          DataValueField="Major_ID" SelectedValue='<%# Bind("Major_ID") %>' 
          ValidationGroup="2"></asp:DropDownList> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" 
          ControlToValidate="DropDownList2" ErrorMessage="Required" ForeColor="Red" 
          InitialValue="--Select--" ValidationGroup="2"></asp:RequiredFieldValidator> 
        <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString ="<%$ConnectionStrings: ConnectionString %>" SelectCommand="SELECT Major_ID, MajorName FROM Major"></asp:SqlDataSource> 
        </InsertItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="School Graduation Year" 
        SortExpression="School_Graduation_Year"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox8" runat="server" 
          Text='<%# Bind("School_Graduation_Year") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox6" runat="server" 
          Text='<%# Bind("School_Graduation_Year") %>' ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" 
          ControlToValidate="TextBox6" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label8" runat="server" 
          Text='<%# Bind("School_Graduation_Year") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="School Grade" SortExpression="School_Grade"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("School_Grade") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox7" runat="server" Text='<%# Bind("School_Grade") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" 
          ControlToValidate="TextBox7" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label9" runat="server" Text='<%# Bind("School_Grade") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Join Year" SortExpression="Join_Year"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("Join_Year") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Join_Year") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" 
          ControlToValidate="TextBox8" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label10" runat="server" Text='<%# Bind("Join_Year") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Email" SortExpression="Email"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox11" runat="server" Text='<%# Bind("Email") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("Email") %>' 
          TextMode="Email" ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator13" runat="server" 
          ControlToValidate="TextBox9" ErrorMessage="Required" ForeColor="Red" 
          ValidationGroup="2"></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label11" runat="server" Text='<%# Bind("Email") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Address" SortExpression="Address"> 
        <EditItemTemplate> 
         <asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("Address") %>'></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="TextBox10" runat="server" Text='<%# Bind("Address") %>' 
          ValidationGroup="2"></asp:TextBox> 
         <asp:RequiredFieldValidator ID="RequiredFieldValidator15" runat="server" 
          ControlToValidate="TextBox10" ValidationGroup="2" ErrorMessage="Required" ForeColor="Red" 
          ></asp:RequiredFieldValidator> 
        </InsertItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label12" runat="server" Text='<%# Bind("Address") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:CommandField ButtonType="Button" ShowInsertButton="True" /> 
      </Fields> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
     </asp:DetailsView> 
+0

double possible de [RequiredFieldValidator avec ValidationGroup ne valide pas] (http://stackoverflow.com/questions/11100230/requiredfieldvalidator-with-validationgroup-doesnt-validate) –

+0

http://stackoverflow.com/questions/11100230/requiredfieldvalidator-with-validationgroup-doesnt-validate ... –

Répondre

0

Vous devez ajouter votre groupe de validation à votre CommandField. Par exemple:

<asp:CommandField ValidationGroup="1" ButtonType="Button" ShowInsertButton="True" /> 

Je voudrais aussi vous suggérons d'utiliser un nom plus significatif pour vos groupes de validation

0

Essayez d'utiliser comme ça ..

Name: 
<asp:TextBox ID="txtNewName" runat="server" /> 
<asp:RequiredFieldValidator ID="vldtxtNewName" runat="server" 
    ControlToValidate="txtNewName" ValidationGroup="NewDepartmentValidationGroup" 
    ErrorMessage="Required Field" /><br /> 
Description: 
<asp:TextBox ID="txtNewDescription" runat="server" /> 
<asp:RequiredFieldValidator ID="vldtxtNewDescription" runat="server" 
    ControlToValidate="txtNewDescription" ErrorMessage="Required Field" 
    ValidationGroup="NewDepartmentValidationGroup" /><br /> 
<asp:Button ID="cmdCreate" runat="server" Text="Create" 
    ValidationGroup="NewDepartmentValidationGroup" OnClick="cmdCreate_Click" />