Gridview 中的日历扩展控件导致不必要的回发
calendar extender controls in Gridview causes unnecessary postback
在下面的代码中,如果我在 Gridview 中使用日历扩展控件和文本框,我会收到不必要的 post 回复。这意味着在下面的代码中,当运行 UpdateEmployeeInAppForm 时被调用了两次。在 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>
这是我找到的解决方案:
<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%>' 并使文本框和日历中的格式相同。
在下面的代码中,如果我在 Gridview 中使用日历扩展控件和文本框,我会收到不必要的 post 回复。这意味着在下面的代码中,当运行 UpdateEmployeeInAppForm 时被调用了两次。在 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>
这是我找到的解决方案:
<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%>' 并使文本框和日历中的格式相同。