Ajax Toolkit Calendar Extender,选择后弹出两次

Ajax Toolkit Calendar Extender, Pops up twice after selection

我遇到了一个很奇怪的问题。我正在使用 Ajax 工具包日历扩展器。我有更新面板 -> ListView -> TextBox (AutoPostBack=Yes)。 如果我在框中输入,它将更新为数据库,然后使用 updatepanel.update() 后面的代码更新面板。这很好用。所以我想把日历放在文本字段中,所以我使用 Ajax Calendar Extender 并调用文本框的目标控件 ID,当我在那里时,我单击文本框并弹出日历,然后我选择日期和文本框更改到新日期然后更新到数据库然后回发,但问题是日历在回发后再次弹出。我需要一种方法来在第一次选择日期后隐藏那个该死的日历。

<asp:TextBox ID="txtDespatchDate" runat="server" CssClass="tblDespContTxtLst" Text='<%# Eval("DescDespatchDate") %>' Width="70px" AutoPostBack="True" OnTextChanged="updDespatchLine" AutoComplete="Off" />

<ajaxToolkit:CalendarExtender ID="calDespatchDate" runat="server" CssClass="Calendar" Format="dd/MM/yyyy" PopupPosition="BottomLeft" TargetControlID="txtDespatchDate"  />

我很久以前就想出了这个,在服务器上做回发我无法使用 ajax 扩展器绕过它,所以我必须使用 JQuery,我做了这样的事情;

代码隐藏

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   ScriptManager.RegisterStartupScript(NameOfUpdatePanel, Me.GetType, "SuperCalendar", "$( function() {
      $('.Calendar').datepicker({ dateFormat: 'dd/mm/yy'}); } );", True)
End Sub

ASP 页

<asp:UpdatePanel ID="NameOfUpdatePanel" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
      <asp:TextBox ID="txtBox1" runat="server" CssClass="Calendar" />
   </ContentTemplate>
</asp:UpdatePanel>

您需要将最新的 JQuery 页眉添加到页面顶部,例如;

<script src="../Scripts/jquery-ui-1.8.21.custom.min.js" type="text/javascript"></script>

你所要做的就是每次你想要一个日期弹出窗口时,你只需添加日历 Class 就可以了;

CssClass="SomeTextBoxClass Calendar"

回发后我没有遇到任何问题,它又弹出了。