【问题标题】:Ajax Toolkit Calendar Extender, Pops up twice after selectionAjax Toolkit Calendar Extender,选择后弹出两次
【发布时间】:2017-03-23 09:01:53
【问题描述】:

我遇到了非常奇怪的问题。我正在使用 Ajax Toolkit Calendar Extender。我有更新面板-> ListView-> TextBox(AutoPostBack=Yes)。 如果我在框中输入,它将更新为 db,然后使用 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"  />

【问题讨论】:

    标签: asp.net vb.net calendar ajaxcontroltoolkit calendarextender


    【解决方案1】:

    我很久以前就想出了这个,在服务器上做回发,我无法使用 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 Header 添加到页面顶部,例如;

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

    您所要做的就是每次想要弹出日期时,只需将日历类添加到其中即可;

    CssClass="SomeTextBoxClass Calendar"
    

    回发后我再也没有遇到任何问题了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多