2017-04-23 2 views
1

Dans le code suivant, je reçois des messages inutiles si j'utilise le contrôle d'extension de calendrier avec une zone de texte dans une vue Grid. Cela signifie que dans le code suivant lorsque s'exécute UpdateEmployeeInAppForm est appelée deux fois. En dehors de Gridview cela fonctionne bien. Est-ce que n'importe quel corps peut m'aider?Les commandes d'extension de calendrier dans Gridview provoquent une publication inutile

<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" ItemType="Employee"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <table> <tr> 
           <td>Date Of Birth</td> 
           <td colspan="3"> 
            <asp:TextBox ID="tbDOB" runat="server" OnTextChanged="UpdateEmployeeInAppForm" AutoPostBack="true" Text='<%# Item.DOB%>'></asp:TextBox> 

            <asp:CalendarExtender ID="tbDOB_CalendarExtender" runat="server" Format="dd MMMM yyyy" SelectedDate='<%# Item.DOB%>' 
             Enabled="True" TargetControlID="tbDOB" ></asp:CalendarExtender> 
           </td> 
          </tr> 
</table> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

Répondre

0

Voici la solution que je trouve:

       <asp:TextBox ID="tbDOB" runat="server" OnTextChanged="UpdateEmployeeInAppForm" AutoPostBack="true" 
             Text='<%#Item.DOB.HasValue ? Item.DOB.Value.Date.ToString("dd MMMM yyyy") : "" %>'></asp:TextBox>           
            <asp:CalendarExtender ID="tbDOB_CalendarExtender" runat="server" Format="dd MMMM yyyy"           
             Enabled="True" TargetControlID="tbDOB" ></asp:CalendarExtender> 

Retirer SelectedDate = '<% # Item.DOB%>' du contrôle d'extension de calendrier et de rendre le format dans la zone de texte et le calendrier même.