显示Asp.net AJAX Calendar Extender的两种方式

时间:2010-05-11 14:53:56

标签: asp.net ajax calendar ajaxcontroltoolkit

有没有办法设置日历扩展器,以便在文本框收到焦点时显示日历,何时单击带有“PopupButtonID”的元素?使用我当前的设置,它似乎是一个或另一个。

3 个答案:

答案 0 :(得分:6)

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

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

这样,无论您是专注于文本框还是单击图像按钮,都会显示日历。

答案 1 :(得分: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。

答案 2 :(得分:2)

使用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"/>