【问题标题】:Displaying Asp.net AJAX Calendar Extender Two Ways以两种方式显示 Asp.net AJAX 日历扩展器
【发布时间】:2011-02-18 04:43:56
【问题描述】:

有没有办法设置日历扩展器,以便在文本框获得焦点以及单击具有“PopupButtonID”的元素时显示日历?以我目前的设置,它似乎是其中之一。

【问题讨论】:

  • 我只是建议使用 jQuery。它有一个非常出色的“DatePicker”插件。

标签: asp.net ajax calendar ajaxcontroltoolkit


【解决方案1】:

这样做有点丑陋,但如果您准备使用两个扩展器,则可以这样做。

<asp:TextBox runat="server" ID="DateTextBox" />
<asp:ImageButton runat="server" ID="CalendarImageButton" ImageUrl="~/date_16x16.gif" />
<ajaxtoolkit:CalendarExtender runat="server" id="Extender1" TargetControlID="DateTextBox"/>
<ajaxtoolkit:CalendarExtender runat="server" ID="Extender2" TargetControlID="DateTextBox" PopupButtonID="CalendarImageButton" />

这样,无论您关注文本框还是单击图像按钮,日历都会出现。

【讨论】:

  • 可能有点难看,但我工作正常 :-) 使用自定义 javascript 尝试了其他解决方案,但最终解决方案几乎可以正常工作,但并不完美。
  • 到目前为止,它是完美的解决方案 :)
【解决方案2】:

我不知道;这是一个或另一个。我能想到的唯一方法是设置它使用弹出控件,然后为文本框焦点添加一个JS事件处理程序,并手动找到日历扩展器,并且可能有一个show()方法,因此您可以手动调用触发器潜在的。不是100%确定。要找出答案:

function textboxFocus() {
    var c = $find("<%= calextenderid.ClientID %>");
    //can use firebug to see if c.open method exists, or check for something else
}

再说一遍,从来没有做过,所以不是 100% 确定。

HTH。

【讨论】:

    【解决方案3】:

    使用 CalendarExtender 的 show() 方法,通过 BehaviorID 引用它:

    <asp:TextBox runat="server" ID="DateTextBox" />
    <asp:ImageButton runat="server" ImageUrl="~/date_16x16.gif" OnClientClick="$find('Extender1').show();return false;" />
    <ajaxtoolkit:CalendarExtenderrunat="server" id="Extender1" BehaviorID="Extender1" TargetControlID="DateTextBox"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2012-06-29
      • 2011-10-07
      • 1970-01-01
      • 2012-08-21
      相关资源
      最近更新 更多