2017-04-23 9 views
1

次のコードでは、Gridviewのテキストボックスと共にカレンダーエクステンダーコントロールを使用すると、不要なポストバックが返されます。つまり、次のコードでUpdateEmployeeInAppFormが2回呼び出されたときです。 Gridviewの外でそれは正常に動作します。どんな体が私を助けることができますか?ここでGridviewのカレンダーエクステンダーコントロールで不要なポストバックが発生する

<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> 

答えて

0

私が見つけた解決策は以下のとおりです。

       <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> 

カレンダーエクステンダーコントロールからSelectedDate =「<%#Item.DOB%>」を削除し、テキストボックスとカレンダーのフォーマットを作ります同じ。

関連する問題