Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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
Javascript 如何管理';为空';和';不为空';使用剑道UI在服务器端进行过滤?_Javascript_Jquery_Asp.net Mvc_Kendo Ui - Fatal编程技术网

Javascript 如何管理';为空';和';不为空';使用剑道UI在服务器端进行过滤?

Javascript 如何管理';为空';和';不为空';使用剑道UI在服务器端进行过滤?,javascript,jquery,asp.net-mvc,kendo-ui,Javascript,Jquery,Asp.net Mvc,Kendo Ui,我使用的是剑道UI,其中有“大于”、“小于”、“大于或等于”、“空”和“不空”等数据过滤器 所有这些都在工作,但当我选择“null”或“is not null”过滤器时,它们会引发异常 我使用了以下代码进行筛选: var entityType = (typeof(T)); PropertyInfo property; if (filter.Field.Contains(".")) property = GetNestedProp<T>(filter.Field); else

我使用的是剑道UI,其中有“大于”、“小于”、“大于或等于”、“空”和“不空”等数据过滤器

所有这些都在工作,但当我选择“null”或“is not null”过滤器时,它们会引发异常

我使用了以下代码进行筛选:

var entityType = (typeof(T));
PropertyInfo property;
if (filter.Field.Contains("."))
    property = GetNestedProp<T>(filter.Field);
else
    property = entityType.GetProperty(filter.Field, BindingFlags.Instance | BindingFlags.Public |
            BindingFlags.NonPublic);
    property = entityType.GetRuntimeProperty(filter.Field);
    var parameterIndex = parameters.Count;
    switch (filter.Operator.ToLower())
    {
        case "eq":
        case "neq":
        case "gte":
        case "gt":
        case "lte":
        case "lt":
        case "isnull":
        case "isnotnull":
            if (property != null)
            {
                if (typeof(DateTime).IsAssignableFrom(property.PropertyType))
                {
                    //if(filter.Operator.ToLower()== "isnull") // check to the all instead of giving values to the  case 
                    parameters.Add(DateTime.Parse(filter.Value).Date);
                    return string.Format("EntityFunctions.TruncateTime({0}){1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                }
                if (typeof(DateTime?).IsAssignableFrom(property.PropertyType))
                {
                    parameters.Add(DateTime.Parse(filter.Value).Date);
                    return string.Format("EntityFunctions.TruncateTime({0}){1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                }
                if (typeof(int).IsAssignableFrom(property.PropertyType))
                {
                    parameters.Add(int.Parse(filter.Value));
                    return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                }
                if (typeof(int?).IsAssignableFrom(property.PropertyType))
                {
                    parameters.Add(int.Parse(filter.Value));
                    return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                }
                if (typeof(Decimal?).IsAssignableFrom(property.PropertyType))
                {
                    if (filter.Operator.ToLower() == "isnull")
                    {
                       parameters.Add(Boolean.Parse(filter.Value));
                        return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                    }
                    else
                    {
                        parameters.Add(Decimal.Parse(filter.Value));
                        return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                    }
                }
                if (typeof(Decimal).IsAssignableFrom(property.PropertyType))
                {
                    parameters.Add(Decimal.Parse(filter.Value));
                    return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
                }
                //if(typeof(Boolean?).IsAssignableFrom(property.PropertyType))
                //{
                //    parameters.Add(Boolean.Parse(filter.Value));
                //}

                //if (typeof(Boolean).IsAssignableFrom(property.PropertyType))
                //{
                //    parameters.Add(Decimal.Parse(filter.Value));
                //}
            }
            parameters.Add(filter.Value);
            return string.Format("{0}{1}@{2}", filter.Field, ToLinqOperator(filter.Operator), index);
        case "startswith": parameters.Add(filter.Value); return string.Format("{0}.StartsWith(" + "@{1})", filter.Field, index);
        case "endswith":
            parameters.Add(filter.Value); return string.Format("{0}.EndsWith(" + "@{1})", filter.Field, index);
        case "contains": parameters.Add(filter.Value); return string.Format("{0}.Contains(" + "@{1})", filter.Field, index);
        default: throw new ArgumentException("This operator is not yet supported for this Grid", filter.Operator);
    }
}
var entityType=(typeof(T));
财产信息财产;
if(filter.Field.Contains(“.”)
属性=GetNestedProp(filter.Field);
其他的
property=entityType.GetProperty(filter.Field,BindingFlags.Instance | BindingFlags.Public|
BindingFlags(非公开);
property=entityType.GetRuntimeProperty(filter.Field);
var parameterIndex=参数.计数;
开关(filter.Operator.ToLower())
{
案例“eq”:
案例“neq”:
案例“gte”:
案例“gt”:
案例“lte”:
案例“lt”:
案例“isnull”:
案例“isnotnull”:
if(属性!=null)
{
if(typeof(DateTime).IsAssignableFrom(property.PropertyType))
{
//if(filter.Operator.ToLower()==“isnull”)//检查全部,而不是给大小写赋值
parameters.Add(DateTime.Parse(filter.Value.Date));
返回string.Format(“EntityFunctions.TruncateTime({0}){1}@{2}”、filter.Field、ToLinqOperator(filter.Operator)、index);
}
if(typeof(DateTime?).IsAssignableFrom(property.PropertyType))
{
parameters.Add(DateTime.Parse(filter.Value.Date));
返回string.Format(“EntityFunctions.TruncateTime({0}){1}@{2}”、filter.Field、ToLinqOperator(filter.Operator)、index);
}
if(typeof(int).IsAssignableFrom(property.PropertyType))
{
parameters.Add(int.Parse(filter.Value));
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
}
if(typeof(int?.IsAssignableFrom(property.PropertyType))
{
parameters.Add(int.Parse(filter.Value));
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
}
if(typeof(Decimal?).IsAssignableFrom(property.PropertyType))
{
if(filter.Operator.ToLower()=“isnull”)
{
parameters.Add(Boolean.Parse(filter.Value));
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
}
其他的
{
parameters.Add(Decimal.Parse(filter.Value));
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
}
}
if(typeof(Decimal).IsAssignableFrom(property.PropertyType))
{
parameters.Add(Decimal.Parse(filter.Value));
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
}
//if(typeof(Boolean?).IsAssignableFrom(property.PropertyType))
//{
//parameters.Add(Boolean.Parse(filter.Value));
//}
//if(typeof(Boolean).IsAssignableFrom(property.PropertyType))
//{
//parameters.Add(Decimal.Parse(filter.Value));
//}
}
参数.Add(filter.Value);
返回string.Format(“{0}{1}@{2}”,filter.Field,ToLinqOperator(filter.Operator),index);
大小写“startswith”:parameters.Add(filter.Value);返回string.Format(“{0}.startswith”(“+”@{1})”,filter.Field,index);
案例“endswith”:
parameters.Add(filter.Value);返回string.Format(“{0}.EndsWith(“+”@{1})”,filter.Field,index);
大小写“contains”:parameters.Add(filter.Value);返回string.Format(“{0}.contains”(“+”@{1})”,filter.Field,index);
默认值:抛出新ArgumentException(“此网格尚不支持此运算符”,filter.operator);
}
}