日期范围选择器

帖子已关闭
2个帖子,0个回复
  1. E69AACB4-3C5B-42BC-9BDD-D0F081D8FE34
    E69AACB4-3C5B-42BC-9BDD-D0F081D8FE34《阿凡达》
    17421个帖子
    因为成员:
    2007年3月

    2010年8月20日发布链接到这篇文章

    <道明>net版本<道明>

    3.5 SP1<道明风格="width: 120px;">Visual Studio版本<道明>

    2008<道明风格="width: 120px;">编程语言<道明>c#, Javascript<道明>浏览器支持<道明>

    所有的浏览器RadControls支持

    需求

    RadControls版本<道明>

    2010, 1, 519, 35

    项目描述
    该项目演示了如何使用RadCalendar和RadCombobox控件来选择日期范围,这与DatePicker接口非常相似。这是通过在RadComboBox ItemTemplate部分中放置两个RadCalendar(用于开始日期和结束日期)和两个按钮(一个用于获取日期范围,另一个用于关闭下拉菜单)来实现的。在每个日历的OnDateSelected客户端事件中,通过设置MaxDate/MinDate值来设置另一个日历中的可选择日期。在OK按钮的OnClientClick事件中,从两个日历中获取所选日期(日期范围)。

    在主页中获取选定的日期范围:
    受保护的无效Button1_Click (对象sender, EventArgs e)
    {
    RangeSelector control = (RangeSelector)Page。FindControl (“RangeSelector1”);
    radcomboboxcombo = (RadComboBox)控件。FindControl (“RadComboBox1”);
    如果(组合。文本= =“选择一个日期”
    {
    Label1。文本=“不选择”
    Label2。文本=“不选择”
    }
    其他的
    {
    DateTime sDate = control.GetStartDate();
    DateTime = control.GetEndDate();
    Label1。文本=sDate.ToShortDateString();
    Label2。文本=eDate.ToShortDateString();
    }
    }


    用户控件标记- RangeSelector.ascx:
    <%@控制语言=" c# " AutoEventWireup="true" CodeFile=" rangeselector . asx .cs"
    继承= " RangeSelector " % >
    <%@ Register Assembly="Telerik.Web。UI Telerik.Web“Namespace =”。UI" TagPrefix="telerik" %>
    <telerik: RadComboBoxID=“RadComboBox1”runat=“服务器”DropDownWidth=“390”文本=“选择一个日期”
    OnClientDropDownClosing=“OnClientDropDownClosing”AllowCustomText=“真正的”ShowToggleImage=“假”
    runat=“服务器”>
    <ItemTemplate>
    <表格风格=宽度:100%;“>
    <tr>
    <道明>
    开始日期
    <telerik: RadCalendarShowRowHeaders=“假”ShowColumnHeaders=“真正的”高度=“70”
    宽度=“180”ID=“RadCalendar1”EnableMultiSelect=“假”runat=“服务器”>
    <ClientEventsOnLoad=“OnLoadCalendar1”OnDateSelected=“Calendar1OnDateSelected”/>
    telerik: RadCalendar>
    道明>
    <道明>
    结束日期
    <telerik: RadCalendarShowRowHeaders=“假”ShowColumnHeaders=“真正的”高度=“70”
    宽度=“180”ID=“RadCalendar2”EnableMultiSelect=“假”runat=“服务器”>
    <ClientEventsOnLoad=“OnLoadCalendar2”OnDateSelected=“Calendar2OnDateSelected”/>
    telerik: RadCalendar>
    道明>
    tr>
    表格>
    ItemTemplate>
    <项目>
    <telerik: RadComboBoxItem/>
    项目>
    <FooterTemplate>
    <div风格=“text-align:中心;”>
    <输入id=“Button2”类型=“按钮”价值=“完成”onclick=“获取当前日期();“/>
    <输入id=“Button1”类型=“按钮”价值=“关闭”onclick=“Close();“/>
    div>
    FooterTemplate>
    telerik: RadComboBox>
    <脚本类型=“text / javascript”>
    Var x = 0;
    OnClientDropDownClosing(sender, args) {
    If (x == 0) {
    args.set_cancel(真正的);
    }
    }
    函数getDates() {
    var combo = $find("<%=RadComboBox1. "ClientID % > ");
    Var item = combo.get_items();
    var startDate = item.getItem(0).findControl("RadCalendar1").GetSelectedDates()[0];
    var endDate = item.getItem(0).findControl("RadCalendar2").GetSelectedDates()[0];
    如果(startDate !=未定义&& endDate !=未定义){
    var startDateYear = item.getItem(0).findControl("RadCalendar1").GetSelectedDates()[0][0];
    var startdatemonmonth = item.getItem(0).findControl("RadCalendar1").GetSelectedDates()[0][1];
    var startDate = item.getItem(0).findControl("RadCalendar1").GetSelectedDates()[0][2];
    var endDateYear = item.getItem(0).findControl("RadCalendar2").GetSelectedDates()[0][0];
    var enddatemonmonth = item.getItem(0).findControl("RadCalendar2").GetSelectedDates()[0][1];
    var endDate = item.getItem(0).findControl("RadCalendar2").GetSelectedDates()[0][2];
    组合。set_text(startDateMonth + '/' + startDate + '/' + startDateYear + '-' + endDateMonth + '/' + endDate + '/' + endDateYear);
    X = 1;
    combo.hideDropDown ();
    }
    如果(startDate ==未定义&& endDate !=未定义){
    alert("请选择开始日期");
    }
    如果(startDate !=未定义&& endDate ==未定义){
    alert("请选择结束日期");
    }
    其他{
    alert(“请选择开始和结束日期”);
    }
    }
    Close() {
    var combo = $find("<%=RadComboBox1. "ClientID % > ");
    组合。set_text("选择日期");
    X = 1;
    combo.hideDropDown ();
    }
    var firstCalendar;
    OnLoadCalendar1(sender, args) {
    firstCalendar = sender;
    }
    var secondCalendar;
    OnLoadCalendar2(sender, args) {
    secondCalendar = sender;
    }
    函数Calendar1OnDateSelected(sender, args) {
    Var calendar1 = sender;
    var calendar2 =第二个日历;
    if (calendar1.get_selectedDates()[0] != undefined) {
    var dates = calendar1.get_selectedDates();
    Var date =日期[0];
    日期[2]=日期[2];
    calendar2.set_rangeMinDate(日期);//设置Calendar2的最小日期范围
    }
    X = 0;
    }
    函数Calendar2OnDateSelected(sender, args) {
    Var calendar2 = sender;
    var calendar1 = firstCalendar;
    if (calendar2.get_selectedDates()[0] != undefined) {
    var日期= calendar2.get_selectedDates();
    Var date =日期[0];
    日期[2]=日期[2];
    calendar1.set_rangeMaxDate(日期);//设置Calendar1的最大日期范围
    }
    X = 0;
    }
    脚本>

    用户控制代码文件- rangeselector . asx .cs

    使用System.Collections.Generic;
    使用来;
    使用包含;
    使用System.Web.UI;
    使用System.Web.UI.WebControls;
    使用Telerik.Web.UI;
    公共部分范围选择器:System.Web.UI.UserControl
    {
    受保护的无效employee (对象sender, EventArgs e)
    {
    }
    公共DateTime GetStartDate ()
    {
    RadCalendar calendar1 = (RadCalendar)RadComboBox1.Items“RadCalendar1”);
    DateTime = calendar1.SelectedDate;
    返回(date1);
    }
    公共DateTime GetEndDate ()
    {
    RadCalendar日历2 = (RadCalendar)RadComboBox1.Items[0].FindControl“RadCalendar2”);
    DateTime = calendar2.SelectedDate;
    返回(date2);
    }
    }


    谢谢,
    Princy。
  • 35 fc6f20-eeb5-48c4-b91b-06c770662fc5
    35 fc6f20-eeb5-48c4-b91b-06c770662fc5《阿凡达》
    3388个帖子
    因为成员:
    2016年4月

    发布于2010年8月23日链接到这篇文章

    嗨Princy,

    感谢您提交一个关于如何使用RadCalendar和RadComboBox控件实现范围选择的解决方案。我相信这将是对其他社区成员有用的例子。

    我还想提一下,对于面向ASP的下一个版本的RadCalendar。. NET AJAX控件我们将提供内置的日期范围选择功能。

    最好的祝愿,
    Iana
    Telerik团队
    你想在我们制定发展计划时发表意见吗?你想知道什么时候添加了一个你关心的功能,或者什么时候修复了一个bug吗?探索Telerik公共问题跟踪系统和投票影响事项的优先级
  • 本代码库是产品文档的一部分,并受各自规范的约束产品许可协议

    Baidu
    map