在文本框焦点上触发Asp.net CalendarExtender



CalendarExtender触发目标点击事件。所以,如果你需要打开日历扩展程序时,文本框得到焦点(如TAB键),它不会工作只是自己。

<asp:textbox id="textBoxId" runat="server" />
<asp:RangeValidator id="valDatumRG" ControlToValidate="textBoxId" Type="Date" ... ValidationGroup="valGr" Display="dynamic" runat="server" />
<ajaxToolkit:CalendarExtender ID="cldExtTermin" runat="server" TargetControlID="textBoxId" PopupButtonID="textBoxId" />

CalendarExtender控件中删除PopupButtonID属性

你需要添加方法,当文本框获得焦点或丢失时触发点击事件。

 textBoxId.Attributes.Add("onblur", "ValidatorOnChange(event);") 
 textBoxId.Attributes.Add("onfocus", "this.click();") 

您可以在弹出按钮单击和文本框焦点时触发CalendarExtender。尝试下面的代码行来同时显示文本框和图像单击上的日历。

<asp:TextBox runat="server" onclick="showCalendar();" onfocusout="showCalendar();" ID="txtDate" />
    <asp:ImageButton runat="Server" ID="imgPopup" AlternateText="Click to show calendar" />
    <cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtDate" CssClass="MyCalendar" Format="MMMM d, yyyy" PopupButtonID="imgPopup" />

并添加如下的javascript函数

<script type="text/javascript">
        function showCalendar() {
       $( "#<%=imgPopup.ClientID %>" ).trigger( "click" ); //I've used .ClientID here just in case your page is inherited from a Master page
    }
    </script>

当你点击文本框时应该显示日历,一旦你点击表单上的其他地方,日历将被隐藏

相关内容

  • 没有找到相关文章

最新更新