コード例 #1
0
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        // Disable text field for 'Empty' and 'Not Empty' values
        TextCompareOperatorEnum op = (TextCompareOperatorEnum)Enum.Parse(typeof(TextCompareOperatorEnum), drpOperator.SelectedValue);

        txtText.Enabled = (op != TextCompareOperatorEnum.Empty) && (op != TextCompareOperatorEnum.NotEmpty);
        if (!txtText.Enabled)
        {
            txtText.Text = String.Empty;
        }
    }
コード例 #2
0
    /// <summary>
    /// Gets where condition.
    /// </summary>
    public override string GetWhereCondition()
    {
        // Do not trim value for text filter
        string tempVal = ValidationHelper.GetString(Value, string.Empty);
        string textOp  = null;

        TextCompareOperatorEnum op = (TextCompareOperatorEnum)Enum.Parse(typeof(TextCompareOperatorEnum), drpOperator.SelectedValue);

        if (!string.IsNullOrEmpty(tempVal))
        {
            tempVal = SqlHelper.EscapeQuotes(tempVal);
        }
        else if (op != TextCompareOperatorEnum.Empty && op != TextCompareOperatorEnum.NotEmpty)
        {
            // Value isn't set (doesn't have to be for empty and not empty)
            return(null);
        }

        switch (op)
        {
        case TextCompareOperatorEnum.Like:
            textOp  = WhereBuilder.LIKE;
            tempVal = "N'%" + SqlHelper.EscapeLikeText(tempVal) + "%'";
            break;

        case TextCompareOperatorEnum.NotLike:
            textOp  = WhereBuilder.NOT_LIKE;
            tempVal = "N'%" + SqlHelper.EscapeLikeText(tempVal) + "%'";
            break;

        case TextCompareOperatorEnum.StartsWith:
            textOp  = WhereBuilder.LIKE;
            tempVal = "N'" + SqlHelper.EscapeLikeText(tempVal) + "%'";
            break;

        case TextCompareOperatorEnum.NotStartsWith:
            textOp  = WhereBuilder.NOT_LIKE;
            tempVal = "N'" + SqlHelper.EscapeLikeText(tempVal) + "%'";
            break;

        case TextCompareOperatorEnum.EndsWith:
            textOp  = WhereBuilder.LIKE;
            tempVal = "N'%" + SqlHelper.EscapeLikeText(tempVal) + "'";
            break;

        case TextCompareOperatorEnum.NotEndsWith:
            textOp  = WhereBuilder.NOT_LIKE;
            tempVal = "N'%" + SqlHelper.EscapeLikeText(tempVal) + "'";
            break;

        case TextCompareOperatorEnum.Equals:
            textOp  = WhereBuilder.EQUAL;
            tempVal = "N'" + tempVal + "'";
            break;

        case TextCompareOperatorEnum.NotEquals:
            textOp  = WhereBuilder.NOT_EQUAL;
            tempVal = "N'" + tempVal + "'";
            break;

        case TextCompareOperatorEnum.Empty:
            return(string.Format("[{0}] IS NULL OR [{0}] = ''", FieldInfo.Name));

        case TextCompareOperatorEnum.NotEmpty:
            return(string.Format("[{0}] IS NOT NULL AND [{0}] <> ''", FieldInfo.Name));

        case TextCompareOperatorEnum.LessThan:
            if (ValidationHelper.IsDouble(tempVal))
            {
                return(string.Format("CASE ISNUMERIC([{0}]) WHEN 1 THEN CAST([{0}] AS FLOAT) ELSE NULL END < CAST({1} AS FLOAT)", FieldInfo.Name, ValidationHelper.GetDouble(tempVal, 0, CultureHelper.EnglishCulture.Name)));
            }
            else
            {
                return("1=2");
            }

        case TextCompareOperatorEnum.GreaterThan:
            if (ValidationHelper.IsDouble(tempVal))
            {
                return(string.Format("CASE ISNUMERIC([{0}]) WHEN 1 THEN CAST([{0}] AS FLOAT) ELSE NULL END > CAST({1} AS FLOAT)", FieldInfo.Name, ValidationHelper.GetDouble(tempVal, 0, CultureHelper.EnglishCulture.Name)));
            }
            else
            {
                return("1=2");
            }
        }


        if (String.IsNullOrEmpty(WhereConditionFormat))
        {
            WhereConditionFormat = "ISNULL([{0}], '') {2} {1}";
        }

        try
        {
            // Format where condition
            return(string.Format(WhereConditionFormat, FieldInfo.Name, tempVal, textOp));
        }
        catch (Exception ex)
        {
            // Log exception
            EventLogProvider.LogException("TextFilter", "GetWhereCondition", ex);
        }

        return(null);
    }