Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kendo ui 如何在没有设置值(希望值为空)的情况下将剑道日期选择器(弹出日期视图)设置为特定年份(1435)_Kendo Ui_Kendo Datepicker - Fatal编程技术网

Kendo ui 如何在没有设置值(希望值为空)的情况下将剑道日期选择器(弹出日期视图)设置为特定年份(1435)

Kendo ui 如何在没有设置值(希望值为空)的情况下将剑道日期选择器(弹出日期视图)设置为特定年份(1435),kendo-ui,kendo-datepicker,Kendo Ui,Kendo Datepicker,我使用两个剑道日期选择器来定制mvc控件,以便在部分视图中显示(gregi和hijri)日期,如果我更改任何一个的日期,则将另一个更改为等效日期 造成剑道限制处理Hijri日历我做了一些修改以显示正确的日期我使用区域性并将Hijri的最大日期设置为1600年12月29日 如果我将值(DateTime.Now)设置为hijri日历,一切都可以 但我希望它显示空值,用户选择值,但如果我删除值,当用户打开日历时,年份显示为1600,我希望显示1435,并保持值为空 她是我的密码 Controller

我使用两个剑道日期选择器来定制mvc控件,以便在部分视图中显示(gregi和hijri)日期,如果我更改任何一个的日期,则将另一个更改为等效日期

造成剑道限制处理Hijri日历我做了一些修改以显示正确的日期我使用区域性并将Hijri的最大日期设置为1600年12月29日

如果我将值(DateTime.Now)设置为hijri日历,一切都可以

但我希望它显示空值,用户选择值,但如果我删除值,当用户打开日历时,年份显示为1600,我希望显示1435,并保持值为空

她是我的密码

Controller
    public class UserControl_GHDate
    {
        public DateTime? GregiDate { get; set; }
        [Column(TypeName = "DateTime2")]
        public DateTime? HijriDate
        {
            get
            {
                if (GregiDate==null)
                {
                    return null;//DateTime.Now; 
                }
                else
                {
                    return GregiDate;
                }


            }
            set {  }
        }

    }

Razor

@model  MVC_ERP.Models.UserControl_GHDate

<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.ar-SA.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.en-US.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kendo/cultures/kendo.culture.ar-SA.min.js")"></script>

   @Html.Kendo().DatePickerFor(model => model.GregiDate).Format("dd/MM/yyyy").Culture("en-US").HtmlAttributes(new { @class = "kendo", style = "width:49%; max-width:280px" }).Events(e => e.Change("GregiChange"))
   @Html.Kendo().DatePickerFor(model => model.HijriDate).Value(DateTime.Now).Footer(false).Max("12/29/1600").Culture("ar-SA").Min(new DateTime(1300, 1, 1)).Format("dd/MM/yyyy").HtmlAttributes(new { @class = "kendo", style = "width:49%; max-width:280px" }).Events(e => e.Change("HijriChange"))

<script>

    kendo.cultures["ar-SA"].calendars.standard.firstDay =5;
    //kendo.cultures["ar-SA"].calendars.standard.months.namesAbbr[0] = "bbb"; //change name of month
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[0] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[1] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[2] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[3] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[4] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[5] = "";
    kendo.cultures["ar-SA"].calendars.standard.days.namesShort[6] = "";





    function GregiChange(e) {
        //alert(this.Name())
        var GregId = this.element.prop("id");
        var arr = GregId.split('_');
        var HijId = arr[0] + '_HijriDate';

        if ($('#' + GregId).data('kendoDatePicker').value() == null)
        {
            $('#' + HijId).data('kendoDatePicker').value(null)
            return
        }
        var d = new Date($('#' + GregId).data('kendoDatePicker').value())

        //d.setMonth(d.getMonth() + 1);

        var j = d.toLocaleDateString("en-US")

        //var z = Globalize.cultures["ar-SA"].calendars.standard.convert.toGregorian("1434", "02", "11");
        var z = Globalize.cultures["ar-SA"].calendars.standard.convert.fromGregorian(d);


        var y = z.toString()
        var arrD = y.split(',');

        var year = arrD[0]
        var month =(arrD[1]==0?1:(eval(arrD[1])+1))
        var day = arrD[2]




        var dat = day + '/' + month + '/' + year


        $('#' + HijId).data('kendoDatePicker').value(dat)


    }

    function HijriChange() {

        var HijId  = this.element.prop("id");
        var arr = HijId.split('_');
        var GregId = arr[0] + '_GregiDate';

        if ($('#' + HijId).data('kendoDatePicker').value() == null) {
            $('#' + GregId).data('kendoDatePicker').value(null)
            return
        }

        var d = new Date($('#' + HijId).data('kendoDatePicker').value())

        var HD = d.getDate() + '/' + (d.getMonth()+1) + '/' + d.getFullYear();
        HDMY= d.getDate() + '/' + (d.getMonth()+1)
        if (d.getDate() == 31 || HDMY == '30/12' || HDMY == '30/10' || HDMY == '30/8' || HDMY == '30/6' || HDMY == '30/4' || HDMY == '30/2')
        {
            alert(HD + ' not valid hijri date')
            return;
        }


        var z = Globalize.cultures["ar-SA"].calendars.standard.convert.toGregorian(d.getFullYear(), (d.getMonth() + 1), d.getDate());

        var u = new Date(z)

        var year = u.getFullYear();
        var month = (u.getMonth() == 0 ? 12 : u.getMonth());
        var day = u.getDate()+1;

        var dat = day+ '/' + month+ '/' + year;

        $('#' + GregId).data('kendoDatePicker').value(dat)
    }


    $(".k-datepicker input").val('');
</script>
控制器
公共类UserControl\u GHDate
{
公共日期时间?GregiDate{get;set;}
[列(TypeName=“DateTime2”)]
公共日期时间?HijriDate
{
得到
{
if(GregiDate==null)
{
返回null;//DateTime.Now;
}
其他的
{
返回灰色;
}
}
集合{}
}
}
剃须刀
@模型MVC\u ERP.Models.UserControl\u GHDate
@Html.Kendo().DatePickerFor(model=>model.GregiDate).Format(“dd/MM/yyyy”).Culture(“en-US”).HtmlAttributes(new{@class=“Kendo”,style=“width:49%;max width:280px”).Events(e=>e.Change(“GregiChange”))
@Html.Kendo().DatePickerFor(model=>model.HijriDate).Value(DateTime.Now).Footer(false).Max(“12/29/1600”).Culture(“ar SA”).Min(new DateTime(1300,1,1)).Format(“dd/MM/yyyyy”).HtmlAttributes(new{@class=“Kendo”,style=“width:49%;Max width:280px”).Events(e=>e.Change(“HijriChange”))
剑道文化[“ar SA”].calendars.standard.firstDay=5;
//剑道。文化[“ar SA”]。日历。标准。月份。名称缩写[0]=“bbb”//更改月份名称
剑道。文化[“ar SA”]。日历。标准。天。名称短[0]=”;
kendo.cultures[“ar SA”]。calendars.standard.days.namesShort[1]=“”;
kendo.cultures[“ar SA”]。calendars.standard.days.namesShort[2]=“”;
剑道。文化[“ar SA”]。日历。标准。天。名称短[3]=”;
剑道。文化[“ar SA”]。日历。标准。天。名称短[4]=”;
kendo.cultures[“ar SA”]。calendars.standard.days.namesShort[5]=“”;
剑道。文化[“ar SA”]。日历。标准。天。名称短[6]=”;
功能更改(e){
//警报(this.Name())
var GregId=this.element.prop(“id”);
var arr=GregId.split(“”);
var HijId=arr[0]+'u HijriDate';
if($('#'+GregId).data('kendoDatePicker').value()==null)
{
$('#'+HijId).data('kendoDatePicker').value(null)
返回
}
var d=新日期($('#'+GregId).data('kendoDatePicker').value())
//d、 setMonth(d.getMonth()+1);
var j=d.toLocaleDateString(“en-US”)
//var z=Globalize.cultures[“ar SA”].calendars.standard.convert.toGregorian(“1434”、“02”、“11”);
var z=Globalize.cultures[“ar SA”].calendars.standard.convert.from Gregorian(d);
变量y=z.toString()
var arrD=y.split(',');
var年=arrD[0]
风险值月份=(arrD[1]==0?1:(评估(arrD[1])+1))
var日=arrD[2]
var dat=日+'/'+月+'/'+年
$('#'+HijId).data('kendoDatePicker').value(dat)
}
函数HijriChange(){
var HijId=this.element.prop(“id”);
var arr=HijId.split(“"”);
var GregId=arr[0]+''u GregiDate';
if($('#'+HijId).data('kendoDatePicker').value()==null){
$('#'+GregId).data('kendoDatePicker').value(null)
返回
}
var d=新日期($('#'+HijId).data('kendoDatePicker').value())
var HD=d.getDate()+'/'+(d.getMonth()+1)+'/'+d.getFullYear();
HDMY=d.getDate()+'/'+(d.getMonth()+1)
如果(d.getDate()==31 | | HDMY==30/12 | | | HDMY==30/10 | | HDMY==30/8 | | HDMY==30/6 | | HDMY==30/4 | | HDMY==30/2)
{
警报(HD+“无效hijri日期”)
返回;
}
var z=Globalize.cultures[“ar SA”].calendars.standard.convert.toGregorian(d.getFullYear(),(d.getMonth()+1),d.getDate());
var u=新日期(z)
var year=u.getFullYear();
var month=(u.getMonth()==0?12:u.getMonth());
var day=u.getDate()+1;
var dat=日+'/'+月+'/'+年;
$('#'+GregId).data('kendoDatePicker').value(dat)
}
$(“.k-datepicker输入”).val(“”);

感谢

我认为剑道日期选取器有一个最小值选项,尝试指定1435年的最小值

我已经设置了最小值=1300,最大值=1600,然后问题是默认视图显示为1600,我希望它是当前年份(1435=2014)哦,对不起,我不能帮你,但我会尝试查看telerik api并回复你