コード例 #1
0
        //构造表达式,存放到m_lstExpression集合里面
        public void GetExpression(string strPropertyName, object strValue, ExpressionTypeEnum expressType)
        {
            Expression       expRes = null;
            MemberExpression member = Expression.PropertyOrField(m_Parameter, strPropertyName);

            if (expressType == ExpressionTypeEnum.Contains)
            {
                expRes = Expression.Call(member, typeof(string).GetMethod("Contains"), Expression.Constant(strValue));
            }
            else if (expressType == ExpressionTypeEnum.Equal)
            {
                expRes = Expression.Equal(member, Expression.Constant(strValue, member.Type));
            }
            else if (expressType == ExpressionTypeEnum.LessThan)
            {
                expRes = Expression.LessThan(member, Expression.Constant(strValue, member.Type));
            }
            else if (expressType == ExpressionTypeEnum.LessThanOrEqual)
            {
                expRes = Expression.LessThanOrEqual(member, Expression.Constant(strValue, member.Type));
            }
            else if (expressType == ExpressionTypeEnum.GreaterThan)
            {
                expRes = Expression.GreaterThan(member, Expression.Constant(strValue, member.Type));
            }
            else if (expressType == ExpressionTypeEnum.GreaterThanOrEqual)
            {
                expRes = Expression.GreaterThanOrEqual(member, Expression.Constant(strValue, member.Type));
            }
            //return expRes;
            m_lstExpression.Add(expRes);
        }
コード例 #2
0
    /// <summary>
    /// Autor: Olonyl Rocha Landeros
    /// Fecha: 08/07/2011
    /// Descripcion: Establecer  tipo de dato predefinido que se puede introducir en el control TextBox
    /// </summary>
    public void SetDefinedValidator(ExpressionTypeEnum definedExpressionType)
    {
        revTextEdit.Enabled = false;
        tbTextEdit_FilteredTextBoxExtender.Enabled  = true;
        tbTextEdit_TextBoxWatermarkExtender.Enabled = false;
        switch (definedExpressionType)
        {
        case ExpressionTypeEnum.Integer:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Numbers;
            break;

        case ExpressionTypeEnum.LetterUpperCase:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.UppercaseLetters;
            break;

        case ExpressionTypeEnum.LetterLowerCase:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.LowercaseLetters;
            break;

        case ExpressionTypeEnum.None:
            tbTextEdit_FilteredTextBoxExtender.Enabled = false;
            rfvTextEdit.Enabled = false;
            break;

        case ExpressionTypeEnum.Number:
            revTextEdit.Enabled = true;
            revTextEdit.ValidationExpression = "[0-9]+(\\.[0-9][0-9]?)?";
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Custom;
            tbTextEdit_FilteredTextBoxExtender.ValidChars = "0123456789.";
            break;

        case ExpressionTypeEnum.Email:
            tbTextEdit_TextBoxWatermarkExtender.Enabled = true;
            tbTextEdit_FilteredTextBoxExtender.Enabled  = false;
            rfvTextEdit.Enabled = false;
            revTextEdit.Enabled = true;
            revTextEdit.ValidationExpression = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
            break;

        case ExpressionTypeEnum.LetterAndNumber:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Custom;
            tbTextEdit_FilteredTextBoxExtender.ValidChars = "qwertyuiopasdfghjklñzxcvbnmQWERTYUIOPASDFGHJKLÑZXCVBNM0123456789 ";
            break;

        case ExpressionTypeEnum.Percent:
            revTextEdit.Enabled = true;
            revTextEdit_ValidatorCalloutExtender.Enabled = true;
            rfvTextEdit_ValidatorCalloutExtender.Enabled = false;
            rfvTextEdit.Enabled = false;
            revTextEdit.ValidationExpression = "^(100(?:.0{1,2})?%?|0*?.\\d{1,2}%?|\\d{1,2}(?:.\\d{1,2})?%?)$";
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Custom;
            tbTextEdit_FilteredTextBoxExtender.ValidChars = "0123456789";
            break;

        case ExpressionTypeEnum.BothCase:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Custom;
            tbTextEdit_FilteredTextBoxExtender.ValidChars = "qwertyuiopasdfghjklñzxcvbnmQWERTYUIOPASDFGHJKLÑZXCVBNM ";
            break;

        case ExpressionTypeEnum.Parameter:
            tbTextEdit_FilteredTextBoxExtender.FilterType = AjaxControlToolkit.FilterTypes.Custom;
            tbTextEdit_FilteredTextBoxExtender.ValidChars = "qwertyuiopasdfghjklñzxcvbnmQWERTYUIOPASDFGHJKLÑZXCVBNM0123456789@_:/., ";
            break;
        }
    }
コード例 #3
0
        //多个字段or同一个值
        public void GetExpression(List <string> listStrPropertyName, object strValue, ExpressionTypeEnum expressType)
        {
            Expression expRes = null;

            foreach (var itemValue in listStrPropertyName)
            {
                MemberExpression member = Expression.PropertyOrField(m_Parameter, itemValue);
                if (expressType == ExpressionTypeEnum.Contains)
                {
                    if (expRes == null)
                    {
                        expRes = Expression.Call(member, typeof(string).GetMethod("Contains"), Expression.Constant(strValue));
                        //expRes = Expression.Equal(member, Expression.Constant(strValue, member.Type));
                    }
                    else
                    {
                        expRes = Expression.Or(expRes, Expression.Call(member, typeof(string).GetMethod("Contains"), Expression.Constant(strValue)));
                    }
                }
                else
                {
                    if (expRes == null)
                    {
                        expRes = Expression.Equal(member, Expression.Constant(strValue, member.Type));
                    }
                    else
                    {
                        expRes = Expression.Or(expRes, Expression.Equal(member, Expression.Constant(strValue, member.Type)));
                    }
                }
            }
            m_lstExpression.Add(expRes);
        }