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; } }
/// <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); }