【发布时间】:2011-02-18 04:43:56
【问题描述】:
有没有办法设置日历扩展器,以便在文本框获得焦点以及单击具有“PopupButtonID”的元素时显示日历?以我目前的设置,它似乎是其中之一。
【问题讨论】:
-
我只是建议使用 jQuery。它有一个非常出色的“DatePicker”插件。
标签: asp.net ajax calendar ajaxcontroltoolkit
有没有办法设置日历扩展器,以便在文本框获得焦点以及单击具有“PopupButtonID”的元素时显示日历?以我目前的设置,它似乎是其中之一。
【问题讨论】:
标签: asp.net ajax calendar ajaxcontroltoolkit
这样做有点丑陋,但如果您准备使用两个扩展器,则可以这样做。
<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" />
这样,无论您关注文本框还是单击图像按钮,日历都会出现。
【讨论】:
我不知道;这是一个或另一个。我能想到的唯一方法是设置它使用弹出控件,然后为文本框焦点添加一个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。
【讨论】:
使用 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"/>
【讨论】: