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