2011-11-12 2 views
0

Je Ajax TabPanel avec Tab « Liste des employés » « Ajouter des employés » « Modifier employé »Ajax tabpanels validation de déclenchement pour d'autres onglets dans ASP.Net 4.0

Sur Liste des employés Tab i utilise GridView pour afficher la liste des employé avec bouton de lien pour afficher les détails de l'employé sur le même onglet et "Del" bouton pour supprimer l'employé. Cela a fonctionné très bien mais quand j'ai ajouté des commandes au deuxième tab «ajoutent l'employé» avec des contrôles de validation. Après cette grille dans l'onglet un ne fonctionne pas car il déclenche la validation sur le second onglet.

Comment puis-je arrêter cette validation qui est déclenchée par des contrôles sur l'onglet 1

Voici le code

<asp:TabContainer ID="TabContainer1" runat="server" Height="320px" Width="100%" 
     ActiveTabIndex="0" > 
    <asp:TabPanel ID="atpEmployeeList" runat="server" > 
    <HeaderTemplate>Employee List</HeaderTemplate> 
    <ContentTemplate> 
    <table border="0" width="100%" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td class="style1" align="left" valign="top"> 
    <b>Employee List</b> 
      <asp:GridView ID="gvEmployeeList" runat="server" AutoGenerateColumns="False" 
      DataKeyNames="eCode" BackColor="White" BorderColor="#336666" 
      BorderStyle="None" BorderWidth="2px" CellPadding="4" 
      GridLines="Horizontal" onrowcommand="gvEmployeeList_RowCommand" 
      onrowdatabound="gvEmployeeList_RowDataBound" > 
      <Columns> 
       <asp:BoundField DataField="eSno" HeaderText="ID" InsertVisible="False" 
        ReadOnly="True" SortExpression="eSno" /> 
       <asp:BoundField DataField="eFirstName" HeaderText="First Name" 
        SortExpression="eFirstName" /> 
       <asp:BoundField DataField="eLastName" HeaderText="Last Name" 
        SortExpression="eLastName" /> 
       <asp:BoundField DataField="eDepartment" HeaderText="Department" 
        SortExpression="eDepartment" /> 
       <asp:BoundField DataField="eSalary" HeaderText="Salary" 
        SortExpression="eSalary" /> 
    <asp:TemplateField HeaderText="Details"> 
    <ItemTemplate> 
     <asp:LinkButton ID="lnkBtnEmpDetails" CommandArgument='<%# Eval("eSno") %>' CommandName="ViewDetails" runat="server"> 
     View</asp:LinkButton> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Delete"> 
    <ItemTemplate> 
     <asp:LinkButton ID="lnkBtnEmpDelete" CommandArgument='<%# Eval("eSno") %>' CommandName="Delete" runat="server"> 
     Del</asp:LinkButton> 
    </ItemTemplate> 
    </asp:TemplateField> 
      </Columns> 
      <FooterStyle BackColor="White" ForeColor="#333333" /> 
      <HeaderStyle BackColor="#336699" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#336699" ForeColor="White" HorizontalAlign="Right" /> 
      <RowStyle BackColor="White" ForeColor="#333333" /> 
      <SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" /> 
      <SortedAscendingCellStyle BackColor="#F7F7F7" /> 
      <SortedAscendingHeaderStyle BackColor="#487575" /> 
      <SortedDescendingCellStyle BackColor="#E5E5E5" /> 
      <SortedDescendingHeaderStyle BackColor="#275353" /> 
     </asp:GridView> 
    </td> 
    <td width="250px" align="left" valign="top"> 
    <b>Employee Details</b> 
     <br /> 
     <table width="280px" align="left" cellpadding="3" cellspacing="0" > 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Code</td> 
       <td> 
        <asp:Label ID="lblEmpCode" runat="server" ></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Fisrt Name</td> 
       <td> 
        <asp:Label ID="lblFirstName" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style5" bgcolor="#336699"> 
        Last Name</td> 
       <td class="style6"> 
        <asp:Label ID="lblLastName" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Designation</td> 
       <td> 
        <asp:Label ID="lblDesignation" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Department</td> 
       <td> 
        <asp:Label ID="lblDepartment" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Salary</td> 
       <td> 
        <asp:Label ID="lblSalary" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Join Date</td> 
       <td> 
        <asp:Label ID="lblJoinDate" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Phone</td> 
       <td> 
        <asp:Label ID="lblPhone" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        Address</td> 
       <td> 
        <asp:Label ID="lblAddress" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style8" bgcolor="#336699"> 
        City</td> 
       <td> 
        <asp:Label ID="lblCity" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td class="style4"> 
        &nbsp;</td> 
       <td> 
        &nbsp;</td> 
      </tr> 
     </table> 
    </td> 
    </tr> 
    </table> 
    </ContentTemplate> 
    </asp:TabPanel> 

    <asp:TabPanel ID="atpAddEmployee" runat="server" > 
    <HeaderTemplate>Add Employee</HeaderTemplate> 
    <ContentTemplate> 
    <div><b>Enter Details of New Employee</b></div> 
    <table border="0px"><tr> 
    <td width="400px"> 
    <div class="spacer"></div> 
      <div class="row"> 
       <asp:Label ID="lblAEmpCode" CssClass="txtLabel" runat="server" Text="Code :"></asp:Label> 
       <asp:TextBox ID="txtACode" runat="server" CssClass="txt4Digit"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="rfvCode" runat="server" ErrorMessage="*" 
        ControlToValidate="txtACode"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblAFN" CssClass="txtLabel" runat="server" Text="First Name :"></asp:Label> 
       <asp:TextBox ID="txtAFN" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
        ControlToValidate="txtAFN"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblALN" CssClass="txtLabel" runat="server" Text="Last Name :"></asp:Label> 
       <asp:TextBox ID="txtALN" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" 
        ControlToValidate="txtALN"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblADesignation" CssClass="txtLabel" runat="server" Text="Designation :"></asp:Label> 
       <asp:TextBox ID="txtADesignation" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" 
        ControlToValidate="txtADesignation"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblADepartment" CssClass="txtLabel" runat="server" Text="Department :"></asp:Label> 
       <asp:TextBox ID="txtADepartment" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="*" 
        ControlToValidate="txtADepartment"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblASalary" CssClass="txtLabel" runat="server" Text="Salary :"></asp:Label> 
       <asp:TextBox ID="txtASalary" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="*" 
        ControlToValidate="txtASalary"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblAJoinDate" CssClass="txtLabel" runat="server" Text="Join Date :"></asp:Label> 
       <asp:TextBox ID="txtAJoinDate" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ErrorMessage="*" 
        ControlToValidate="txtAJoinDate"></asp:RequiredFieldValidator> 
      </div> 
    </td> 
    <td width="400px"> 
     <div class="spacer"></div> 
      <div class="row"> 
       <asp:Label ID="lblAAddress" CssClass="txtLabel" runat="server" Text="Address :"></asp:Label> 
       <asp:TextBox ID="txtAAddress" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ErrorMessage="*" 
        ControlToValidate="txtAAddress"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblACity" CssClass="txtLabel" runat="server" Text="City :"></asp:Label> 
       <asp:TextBox ID="txtACity" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ErrorMessage="*" 
        ControlToValidate="txtACity"></asp:RequiredFieldValidator> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblACountry" CssClass="txtLabel" runat="server" Text="Country :"></asp:Label> 
         <asp:UpdatePanel ID="updatepanel1" runat="server"> 
          <ContentTemplate> 
          <asp:DropDownList ID="ddCountry" runat="server" CssClass="ddGeneral" DataTextField="Country" 
           DataValueField="CountryId" OnSelectedIndexChanged="ddCountry_SelectedIndexChanged" 
           AutoPostBack="true" AppendDataBoundItems="true" > 
           <asp:ListItem Value="0">Select Country</asp:ListItem> 
          </asp:DropDownList> 
         </ContentTemplate> 
        </asp:UpdatePanel> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblAState" CssClass="txtLabel" runat="server" Text="State :"></asp:Label> 
       <asp:UpdatePanel ID="updatePnlState" runat="server"> 
        <ContentTemplate> 
        <asp:DropDownList ID="ddState" runat="server" CssClass="ddGeneral" DataTextField="Region" DataValueField="RegionId" AppendDataBoundItems="true"> 
        <asp:ListItem Value="0">Select State</asp:ListItem> 
        </asp:DropDownList> 
       </ContentTemplate> 
       </asp:UpdatePanel> 
       <asp:UpdateProgress ID="updProgLoading" runat="server" > 
       <ProgressTemplate> 
        <img src="images/ajax-loader-small.gif" align="left" alt="Loading..." vspace="0" />&nbsp; 
       </ProgressTemplate> 
       </asp:UpdateProgress> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblALL" CssClass="txtLabel" runat="server" Text="Landline :"></asp:Label> 
       <asp:TextBox ID="txtALL" runat="server" CssClass="txtbox"></asp:TextBox> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblAMobile" CssClass="txtLabel" runat="server" Text="Mobile :"></asp:Label> 
       <asp:TextBox ID="txtAMobile" runat="server" CssClass="txtbox"></asp:TextBox> 
      </div> 
      <div class="row"> 
       <asp:Label ID="lblAEmail" CssClass="txtLabel" runat="server" Text="Email :"></asp:Label> 
       <asp:TextBox ID="txtAEmail" runat="server" CssClass="txtbox"></asp:TextBox> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator13" runat="server" ErrorMessage="*" 
        ControlToValidate="txtAEmail"></asp:RequiredFieldValidator> 
    </div> 
    </td> 
    </tr> 
    <tr><td colspan="2" align="center" height="40px"> 

     <asp:Button ID="btnAddEmployee" runat="server" Text="Add Employee" 
      CssClass="btn" onclick="btnAddEmployee_Click" /> <input id="Reset1" type="reset" class="btn" value="Reset" /> 
    </td></tr> 
    </table> 
    </ContentTemplate> 
    </asp:TabPanel> 

    <asp:TabPanel ID="atpEditEmployee" runat="server" > 
    <HeaderTemplate>Edit Employee</HeaderTemplate> 
       <ContentTemplate> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /> 
        <input id="Button2" type="button" value="Next" onclick="MoveTab(1)" /> 
       </ContentTemplate> 
    </asp:TabPanel> 

    </asp:TabContainer> 

Répondre

0

Vous devriez regarder en utilisant l'attribut ValidationGroup pour validateurs. Par exemple, pour tous les validateurs de l'onglet atpAddEmployee, vous devez définir l'attribut comme ValidationGroup="atpAddEmployee" ou tout autre nom que vous jugez approprié.

J'ai pris l'un des validateurs de l'onglet atpAddEmployee et ajouté l'attribut comme décrit ci-dessus.

<asp:RequiredFieldValidator ID="rfvCode" runat="server" ErrorMessage="*" ControlToValidate="txtACode" ValidationGroup="atpAddEmployee"></asp:RequiredFieldValidator> 

Pour cet onglet, vous devez également ajouter l'attribut ValidationGroup au bouton qui devrait déclencher la validation, voir ci-dessous.

<asp:Button ID="btnAddEmployee" runat="server" Text="Add Employee" CssClass="btn" onclick="btnAddEmployee_Click" ValidationGroup="atpAddEmployee" /> 

Certains autres lectures, MSDN et W3Schools.

+0

Merci beaucoup. Appréciez votre aide. – Student

+1

Vous répondez avec l'exemple était excellent et très clair, m'a pris presque pas le temps de mettre en œuvre votre idée et a sauvé ma journée. Merci encore.. – Student

Questions connexes