返回首页

{A}{S0}
简介
时间选择器是一个Ajax扩展程序控件可用于输入时间。它尝试这种没有根据可以用来增强ASP.NET Web服务器控件的客户端功能的扩展,以填补差距。您不使用自己的扩展程序控件。相反,你将它们附加到另一个ASP.NET Web服务器控件。扩展程序控件附加到Web服务器控件的扩展程序控件的TargetControlID属性设置扩展的服务器控件的ID。

库​​下载包括:帮助文件二进制文件演示应用程序的来源
本文包含Framework 2.0和3.5框架的源和二进制文件。背景
虽然一个项目的工作,我碰到一个需要用户输入的方式,他们可以选择从日历控件的日期。意识到,微软并没有提供任何开箱控制的事实,我开始寻找其他的选择。有一些提供良好的解决方案,但其中大多数是使用客户端脚本(jQuery的/ JavaScript的)。

这是当我无意中发现这两篇文章时:{A4}
由于我很少有关于ASP.NET的经验,我决定把它作为一个学习的机会,建立在这样的控制,基于上述的两个例子,。
我的目标是建立一个控制必须简单易用/配置,提供有用的功能设置,并应类似AJAX Control Toolkit中的日历控件。使用代码
要使用控制:添加一个控制组件Ajaxified.dll的参考。大会还可以添加到工具箱中。 TimePicker控制将被添加到工具箱中。添加一个TextBox控件,您需要扩展,表现为一个时间选择器。从工具箱拖动TimePicker控制。这将增加以下页面指令,并在页面上的控制。

<%@ Register TagPrefix="Ajaxified" Assembly="Ajaxified" Namespace="Ajaxified" %>

最后的标记将是: {C}
时间选择器控制公开thenbsp以下属性: 物业名称类型评论CloseOnSelection布尔指定是否应选择当一个特定的时间自动关闭弹出。默认为false。MinuteStepInt32的指定两个值之间的分钟间隔。默认值是15分钟。OnClientShowing字符串客户端事件时弹出开始打开。OnClientShown字符串完全打开时弹出的客户端事件。OnClientHiding字符串客户端事件时弹出开始关闭。OnClientHidden字符串 客户端事件时,弹出的是完全封闭的。OnClientSelectionChanged字符串客户端事件时的时间选择是做。的CssClass字符串为控制的CSS类名。HeaderCssClass字符串CSS类名头的一部分。TitleCssClass字符串标题文本的CSS类名。TabCssClass字符串上午/下午标签的CSS类名。ItemCssClass字符串为项目单元的CSS类名。SelectedItemCssClass字符串对选定的项目单元的CSS类名。SelectedTabCssClass字符串选定的标签的CSS类名。
标记说明这些属性的使用:
<asp:TextBox ID="TextBox2" runat="server" Text=""></asp:TextBox>

<Ajaxified:TimePicker runat="server" TargetControlID="TextBox2" 

   	  CssClass="timepicker"

           HeaderCssClass="header" 

           TitleCssClass="title" 

           ItemCssClass="item" 

           SelectedItemCssClass="selecteditem"

           TabCssClass="tab" 

           SelectedTabCssClass="selectedtab" 

           OnClientShowing="clientShowing"

           OnClientShown="clientShown" 

           OnClientHiding="clientHiding" 

           OnClientHidden="clientHidden"

           OnClientSelectionChanged="selectionChanged" 

           MinuteStep="10" 

           CloseOnSelection="true">

</Ajaxified:TimePicker>

和处理事件:
<script language="javascript" type="text/javascript">

    function clientShowing(sender) {

        //sender is reference to the timepicker object

    }

    function clientShown(sender) {

        //sender is reference to the timepicker object

    }

    function clientHiding(sender) {

        //sender is reference to the timepicker object

    }

    function clientHidden(sender) {

        //sender is reference to the timepicker object

    }

    function selectionChanged(sender) {

        alert(sender._selectedTime);

    }

</script>
造型
控制的基本布局定义,如下图所示:
{S2}
每一部分都有一个CssName属性附加到它处理所有的造型需要控制。如果用户不分配这些属性,控制项呈现在介绍图像显示的默认样式。这是最好的颜色和字体的计划,以保持布局的一致性,发挥。演示应用程序包含一个样式表来说明如何重写控件的默认样式。段名CSS属性名称的CssClass整个控制HeaderCssClass头TitleCssClass标题文本TabCssClass上午/下午标签ItemCssClass项目细胞 SelectedItemCssClass所选项目的细胞SelectedTabCssClass选定的选项卡验证
控制也能够基本输入验证。
{S3}
如果用户密钥无效的时间格式,控制系统将提供一个可视化的提示,什么是错的,如上图所示。兴趣点
这次演习已经对我很有价值,尤其是当它来到了客户端脚本。最重要的事情,我来学习如何使用JavaScript的面向对象的方式。 ,但有轻微的打嗝时,试图在不同的浏览器。
我已经测试IE8,火狐4和Chrome的组成部分。有一个布局的问题,在IE7.0的使用,但这项工作的整体思路是创建学习跨浏览器的问题,而不是扩展控制。所以,我离开那里。参考文献 {A7}
鉴赏这些作者提供的很好的例子。

回答

评论会员:游客 时间:2012/02/03
不与ASP4.0项目工作?抛出JS错误
会员8537614
评论会员:游客 时间:2012/02/03
将是很好的,如果JS可以固定在ASP.NEt4
Smcdonald
评论会员:游客 时间:2012/02/03
我想添加到我的工具箱的Ajax化的,我得到的错误无法加载文件或程序。我如何添加此。dll在我的项目中使用。我的VS2008,NET3.5
。Rhuros
评论会员:好一个 时间:2012/02/03
Fyrearm
评论会员:游客 时间:2012/02/03
这看起来像这样一个出色的控制,正是我要找的是。我试图运行3.5示例项目,我在IE8下面的错误。当运行它是Firefox,我得到了验证时间,但时间似乎罚款。难道是因为我用StudioExpress的2010codepreWebpageerrordetails UserAgent:Mozilla/4.spanclass="code-digit"0/span(compatible;MSIEspanclass="code-digit"8/span.spanclass="code-digit"0/span;WindowsNTspanclass="code-digit"5/span.spanclass="code-digit"1/span;Trident/4.spanclass="code-digit"0/span;.NETCLRspanclass="code-digit"1/span.spanclass="code-digit"1/span.spanclass="code-digit"4322/span;.NETCLRspanclass="code-digit"2/span.spanclass="code-digit"0/span.spanclass="code-digit"50727/span;.NETCLRspanclass="code-digit"3/span.spanclass="code-digit"0/span.spanclass="code-digit"04506/span.spanclass="code-digit"30/span;InfoPath.spanclass="code-digit"2/span;.NETCLRspanclass="code-digit"3/span.spanclass="code-digit"0/span.spanclass="code-digit"4506/span.spanclass="code-digit"2152/span;.NETCLRspanclass="code-digit"3/span.spanclass="code-digit"5/span.spanclass="code-digit"30729/span;.NET4.0C;.NET4.0E)Timestamp:Wed,spanclass="code-digit"29/spanJunspanclass="code-digit"2011/spanspanclass="code-digit"15/span:spanclass="code-digit"22/span:spanclass="code-digit"27/spanUTC Message:Sys.ArgumentOutOfRangeException:Valuemustbeaninteger.Parametername:yActualspanclass="code-keyword"value/spanwasspanclass="code-digit"6/span.spanclass="code-digit"5/span.Line:spanclass="code-digit"3314/spanChar:spanclass="code-digit"12/spanCode:spanclass="code-digit"0/spanURI:http:spanclass="code-comment"///spanspanclass="code-comment"localhost:1295/ScriptResource.axd?d=lXPGrjCoNDfbWpQQq4r7gpf19LQe1JM6q5BOBnfumWZFq3DNcgyha_uMoF2pPO1ajgk7f9_2bXxwNasn_XHnA8EK45RsRnimmOk-wEo1OBmM8D2mljzRXKwUD4-qQ7bflZI7TV2MlkrzXchJEDcJGGyE8aOAAVvaA6lN6qcmDLAURpxf0&t=ffffffffab281fab/span /pre/code
法尔汉Ejaz
评论会员:游客 时间:2012/02/03
奇怪!一想到虽然,检查web.config文件中应包含有关AJAX项目模板的所有部分为支持thanx
Najmul甫田
评论会员:游客 时间:2012/02/03
尼斯之一...我的票是5{S4}Najmul甫田我想成为程序员至死
。JV9999
评论会员:游客 时间:2012/02/03
这可能是一个很好的组成部分。然而,你为特定时区的建立。例如,我不能使用它在欧盟,因为很多国家不与上午和下午的工作。如果我想每隔10分钟之间的时间,我可以选择,而不是15?这是可能的
?法尔汉Ejaz
评论会员:游客 时间:2012/02/03
是的,我们可以有足够的时间间隔设置为10分钟,而不是使用默认控制minuteStep财产15。对于模式12H/24H是我的愿望清单。将作为未来增强。祝编程{五}JV9999
|:支持
thanx AAH我错过了。我会保持对你的组件的眼睛,因为它看起来相当友好的用户... ...
评论会员:Anuj特里帕蒂 时间:2012/02/03
非常有用的
评论会员:法尔汉Ejaz 时间:2012/02/03
感谢{S6}
thanx的支持
评论会员:基兰Sonawane 时间:2012/02/03
我的5
评论会员:基兰Sonawane 时间:2012/02/03
可​​我们改变这个时间24小时
评论会员:?法尔汉Ejaz 时间:2012/02/03
我们可以不办使用此控件,它的书面自下而上12H格式。但是一个很好的思想虽然可以考虑另一个版本。
thanx支持
评论会员:基兰Sonawane 时间:2012/02/03
嗯。希望能在下一版本!

好运
评论会员:!saxenaabhi6 时间:2012/02/03