using DevExpress.Utils;
using DevExpress.Web;
using DevExpress.Web.Mvc;
using DevExpress.Web.Mvc.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Platform.Code.Helpers
{
public enum NAPColumnType
{
Bound = 0,
Integer = 1,
Decimal = 2,
DateTime = 3,
String = 4,
Boolean = 5,
Object = 6,
Date = 7,
}
public enum NAPColumnControlType
{
None = 0,
Textbox = 1,
DropDownList = 2,
Checkbox = 3,
Hyperlink = 4,
Memo = 5,
DateEdit = 6,
IntEdit = 7,
DecimalEdit = 8,
DateTimeEdit = 9,
Button = 10,
DropDownListTextBoxGroup = 11,
TextboxWithButton = 12,
DateWithoutOption = 13,
TextRange = 14
}
public class DevExpressGridHelper
{
private GridViewSettings _Settings;
public string gs_EditField = "";
public string gs_Fields = "";
public string gs_MandatoryField = "";
public DevExpressGridHelper(GridViewSettings settings)
{
this._Settings = settings;
}
public void GridSetting(string as_FunCode)
{
this._Settings.Width = Unit.Percentage(100);
this._Settings.SettingsEditing.Mode = GridViewEditingMode.Batch;
this._Settings.SettingsEditing.BatchEditSettings.EditMode = GridViewBatchEditMode.Cell;
this._Settings.SettingsEditing.BatchEditSettings.StartEditAction = GridViewBatchStartEditAction.Click;
this._Settings.Styles.BatchEditModifiedCell.BackColor = Utils.GetColor.BatchEditModifiedCell;
this._Settings.Styles.BatchEditDeletedRow.BackColor = Utils.GetColor.DeleteColor;
this._Settings.Styles.BatchEditCell.BackColor = Utils.GetColor.BatchEditCellColor;
this._Settings.Styles.SelectedRow.BackColor = Utils.GetColor.BackColor;
this._Settings.Styles.SelectedRow.ForeColor = Utils.GetColor.ForeColor;
this._Settings.ClientSideEvents.CustomizationWindowCloseUp = Utils.GetTranslation("CustomizationWindowCloseUp");
this._Settings.SettingsBehavior.EnableCustomizationWindow = true;
this._Settings.SettingsBehavior.AllowSelectByRowClick = true;
this._Settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.Off;
this._Settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Right;
this._Settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1;
this._Settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false;
this._Settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0;
this._Settings.SettingsResizing.ColumnResizeMode = ColumnResizeMode.Control;
this._Settings.SettingsText.EmptyDataRow = Utils.GetTranslation("No data to display");
this._Settings.CellEditorInitialize = (sender, e) =>
{
ASPxEdit editor = (ASPxEdit)e.Editor;
editor.ValidationSettings.Display = Display.Dynamic;
};
this._Settings.CustomJSProperties = (s, e) =>
{
e.Properties["cpPageSize"] = ((MVCxGridView)s).SettingsPager.PageSize;
Dictionary<object, int> visibleIndices = new Dictionary<object, int>();
var lo_GridView = s as MVCxGridView;
if (lo_GridView != null)
{
for (int i = 0; i < lo_GridView.VisibleRowCount; i++)
{
var ls_RowValue = lo_GridView.GetRowValues(i, lo_GridView.KeyFieldName);
if (!visibleIndices.ContainsKey(ls_RowValue))
{
visibleIndices.Add(ls_RowValue, i);
}
}
}
e.Properties["cpIndices"] = visibleIndices;
};
this._Settings.CustomColumnDisplayText = (sender, e) =>
{
if (e.Column.FieldName == "RowNo")
{
if (e.VisibleIndex >= 0)
{
e.DisplayText = (e.VisibleIndex + 1).ToString();
e.Value = (e.VisibleIndex + 1).ToString();
}
}
this.FormatDisplayText(e);
};
this._Settings.PreRender = (sender, e) =>
{
ASPxGridView gridView = (ASPxGridView)sender;
gridView.FilterExpression = string.Empty;
};
this._Settings.CommandButtonInitialize = (sender, e) =>
{
if ((e.ButtonType == ColumnCommandButtonType.Update) || (e.ButtonType == ColumnCommandButtonType.Cancel))
{
e.Visible = false;
}
};
this._Settings.ClientLayout = (sender, e) =>
{
if (e.LayoutMode == ClientLayoutMode.Saving)
{
if ((string)HttpContext.Current.Request.Cookies["bSave" + as_FunCode + this._Settings.Name + "Layout"].Value == "1")
{
HttpContext.Current.Response.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value = e.LayoutData;
Utils.SaveUserLayoutToDatabase(as_FunCode + this._Settings.Name, e.LayoutData);
}
}
else
{
if (HttpContext.Current.Request.Cookies[as_FunCode + this._Settings.Name + "Layout"] == null || String.IsNullOrEmpty(HttpContext.Current.Request.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value))
{
HttpContext.Current.Response.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value = Utils.RestoreUserLayoutFromDatabase(as_FunCode + this._Settings.Name);
}
if (HttpContext.Current.Response.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value != null && HttpContext.Current.Response.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value != "")
{
e.LayoutData = HttpContext.Current.Response.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value;
}
else
{
e.LayoutData = HttpContext.Current.Request.Cookies[as_FunCode + this._Settings.Name + "Layout"].Value;
}
}
HttpContext.Current.Response.Cookies["bSave" + as_FunCode + this._Settings.Name + "Layout"].Value = "0";
};
this._Settings.CustomActionRouteValues = "";
}
public void GridExportSetting(string as_FileName)
{
this._Settings.SettingsExport.Styles.Cell.Font.Name = "Calibri";
this._Settings.SettingsExport.Styles.Header.Font.Name = "Calibri";
this._Settings.SettingsExport.FileName = as_FileName + "_" + System.DateTime.Today.ToString("yyyyMMdd");
this._Settings.SettingsExport.RenderBrick = (sender, e) =>
{
MVCxGridViewColumn col = e.Column as MVCxGridViewColumn;
HyperLinkProperties properties = col.PropertiesEdit as HyperLinkProperties;
if (properties != null)
{
properties.NavigateUrlFormatString = "";
col.ColumnType = MVCxGridViewColumnType.TextBox;
}
};
}
public void AddSelectCheckboxColumn()
{
this._Settings.CommandColumn.Visible = true;
this._Settings.CommandColumn.Width = 50;
this._Settings.CommandColumn.ShowClearFilterButton = true;
this._Settings.CommandColumn.ShowSelectCheckbox = true;
this._Settings.CommandColumn.SelectAllCheckboxMode = GridViewSelectAllCheckBoxMode.Page;
}
public void AddSelectRadioButtonColumn()
{
this._Settings.CommandColumn.Visible = true;
this._Settings.CommandColumn.Width = 50;
this._Settings.CommandColumn.ShowClearFilterButton = true;
this._Settings.SettingsBehavior.AllowSelectSingleRowOnly = true;
this._Settings.CommandColumn.ShowSelectCheckbox = true;
this._Settings.CommandColumn.FixedStyle = GridViewColumnFixedStyle.Left;
}
public void AddScrollbar(int ai_Height)
{
this._Settings.Settings.HorizontalScrollBarMode = ScrollBarMode.Visible;
this._Settings.Settings.VerticalScrollBarMode = ScrollBarMode.Visible;
this._Settings.Settings.VerticalScrollableHeight = ai_Height;
}
public void AddGroupPanel()
{
this._Settings.Settings.ShowGroupPanel = true;
this._Settings.SettingsText.GroupPanel = Utils.GetTranslation("Drag a column header here to group by that column");
}
public void AddPaging(int ai_PageSize, bool ab_ShowPaging = true)
{
this._Settings.SettingsPager.Visible = ab_ShowPaging;
if (ab_ShowPaging)
{
this._Settings.SettingsPager.PageSize = ai_PageSize;
this._Settings.SettingsPager.Position = PagerPosition.Top;
this._Settings.SettingsPager.FirstPageButton.Visible = true;
this._Settings.SettingsPager.LastPageButton.Visible = true;
this._Settings.SettingsPager.PageSizeItemSettings.Visible = true;
this._Settings.SettingsPager.PageSizeItemSettings.Items = Utils.GetPageSize();
}
else
{
this._Settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
}
}
/// <summary>
///
/// </summary>
/// <param name="helper"></param>
/// <param name="ab_Visible"></param>
/// <param name="ao_GridViewNewItemRowPosition"></param>
/// <param name="ab_HasRecover"></param>
/// <param name="ab_ConfirmDelete"></param>
/// <param name="as_ConfirmDeleteText"></param>
public void AddCommandColumnButton(HtmlHelper helper
, bool ab_Visible = true
, GridViewNewItemRowPosition ao_GridViewNewItemRowPosition = GridViewNewItemRowPosition.Bottom
, bool ab_HasRecover = true
, bool ab_ConfirmDelete = false
, int ai_CommandColumnWidth = 40
, bool ab_HasAddButton = true
, bool ab_HasDeleteButton = true)
{
this._Settings.CommandColumn.ShowClearFilterButton = true;
this._Settings.CommandColumn.Visible = ab_Visible;
this._Settings.CommandColumn.ShowDeleteButton = ab_HasDeleteButton;
this._Settings.SettingsCommandButton.DeleteButton.Text = "-";
this._Settings.SettingsCommandButton.DeleteButton.RenderMode = GridCommandButtonRenderMode.Button;
this._Settings.SettingsCommandButton.DeleteButton.Styles.Style.Font.Underline = false;
this._Settings.SettingsEditing.BatchEditSettings.HighlightDeletedRows = ab_HasRecover;
this._Settings.SettingsBehavior.ConfirmDelete = ab_ConfirmDelete;
if (ab_ConfirmDelete)
this._Settings.SettingsText.ConfirmDelete = Utils.GetMessage("2002", "[" + Utils.GenerateJson("1", Utils.GetTranslation("delete"), "String") + "]");
this._Settings.CommandColumn.ShowRecoverButton = ab_HasRecover;
this._Settings.SettingsCommandButton.RecoverButton.Text = "+";
this._Settings.SettingsCommandButton.RecoverButton.RenderMode = GridCommandButtonRenderMode.Button;
this._Settings.SettingsCommandButton.RecoverButton.Styles.Style.Font.Underline = false;
this._Settings.CommandColumn.FixedStyle = GridViewColumnFixedStyle.Left;
this._Settings.CommandColumn.Width = ai_CommandColumnWidth;
this._Settings.SettingsEditing.NewItemRowPosition = ao_GridViewNewItemRowPosition;
if (ab_HasAddButton)
{
this._Settings.CommandColumn.SetHeaderTemplateContent(c =>
{
helper.DevExpress().Button(btnSettings =>
{
btnSettings.Text = "+";
btnSettings.Name = "btnAdd" + this._Settings.Name;
btnSettings.RenderMode = ButtonRenderMode.Button;
btnSettings.ControlStyle.Font.Underline = false;
btnSettings.Width = Unit.Percentage(100);
btnSettings.ClientVisible = ab_Visible;
btnSettings.ClientSideEvents.Click = "function (s,e){ " + this._Settings.Name + "_AddNewRow();}";
btnSettings.UseSubmitBehavior = false;
}).Render();
});
}
this._Settings.CommandColumn.HeaderStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;
}
public void AddColumn(string as_FieldName, string as_Caption, NAPColumnType ao_ColumnType, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", NAPColumnControlType ao_ControlType = NAPColumnControlType.None, object[] ao_Object = null)
{
this._Settings.Columns.Add(column =>
{
column.FieldName = as_FieldName;
column.Caption = Utils.GetTranslation(as_Caption);
this.ColumnSetting(column, ao_ColumnType, ai_Width, ab_EditFormSettingsVisible, as_DisplayFormatString, ao_ControlType, ao_Object);
});
if (ab_Editable)
gs_EditField += as_FieldName + ",";
gs_Fields += as_FieldName + ",";
}
public void ColumnSetting(MVCxGridViewColumn ao_Column, NAPColumnType ao_ColumnType, int ai_Width, bool ab_EditFormSettingsVisible, string as_DisplayFormatString, NAPColumnControlType ao_ControlType, object[] ao_Object)
{
switch (ao_ColumnType)
{
case NAPColumnType.DateTime:
ao_Column.Width = 120;
ao_Column.UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
break;
case NAPColumnType.Integer:
ao_Column.Width = 80;
ao_Column.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
ao_Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right;
ao_Column.CellStyle.HorizontalAlign = HorizontalAlign.Right;
break;
case NAPColumnType.Date:
ao_Column.Width = 90;
ao_Column.ColumnType = MVCxGridViewColumnType.DateEdit;
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
//column.PropertiesEdit.DisplayFormatString = "yyyyMMdd";
break;
case NAPColumnType.String:
ao_Column.Width = 50;
ao_Column.UnboundType = DevExpress.Data.UnboundColumnType.String;
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
ao_Column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
break;
case NAPColumnType.Object:
SetColumnControl(ao_Column, ao_ControlType, ao_Object);
break;
}
if (!string.IsNullOrWhiteSpace(as_DisplayFormatString))
{
ao_Column.PropertiesEdit.DisplayFormatString = as_DisplayFormatString;
}
if (ai_Width != 0)
ao_Column.Width = ai_Width;
if (ab_EditFormSettingsVisible)
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
else
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
}
public void FormatDisplayText(ASPxGridViewColumnDisplayTextEventArgs e)
{
DateTime ldt_DtTmp; //TryParse
decimal lde_DeTmp; //TryParse
int li_ITmp; //TryParse
var value = e.GetFieldValue(e.Column.FieldName);
//there is no FormatString for string
if (e.Column.UnboundType == DevExpress.Data.UnboundColumnType.String)
{
return;
}
if (value != null && e.DisplayText == null && string.IsNullOrWhiteSpace(value.ToString()))
{
return;
}
if (value == null && !string.IsNullOrWhiteSpace(e.DisplayText))
{
return;
}
//For ListDataSource to Show Text
if (value != null && e.DisplayText != null && e.DisplayText != value.ToString())
{
return;
}
var formatString = e.Column.PropertiesEdit.DisplayFormatString;
if (string.IsNullOrWhiteSpace(formatString) && value != null)
{
switch (e.Column.UnboundType)
{
case DevExpress.Data.UnboundColumnType.DateTime:
formatString = Code.Utils.GetFormatString.DateTimeDisplay;
if (DateTime.TryParse(value.ToString(), out ldt_DtTmp))
{
e.DisplayText = string.Format("{0:" + formatString + "}", ldt_DtTmp);
}
break;
case DevExpress.Data.UnboundColumnType.Decimal:
formatString = Code.Utils.GetFormatString.DecimalDisplay;
if (decimal.TryParse(value.ToString(), out lde_DeTmp))
{
e.DisplayText = string.Format("{0:" + formatString + "}", lde_DeTmp);
}
break;
case DevExpress.Data.UnboundColumnType.Integer:
formatString = Code.Utils.GetFormatString.IntDisplay;
if (int.TryParse(value.ToString(), out li_ITmp))
{
e.DisplayText = string.Format("{0:" + formatString + "}", li_ITmp);
}
if (value == DBNull.Value)
{
e.DisplayText = "";
}
break;
case DevExpress.Data.UnboundColumnType.Bound:
if (((DevExpress.Web.Mvc.MVCxGridViewColumn)e.Column).ColumnType != MVCxGridViewColumnType.Default)
{
switch (((DevExpress.Web.Mvc.MVCxGridViewColumn)e.Column).ColumnType)
{
case MVCxGridViewColumnType.TextBox:
break;
case MVCxGridViewColumnType.DateEdit:
formatString = Code.Utils.GetFormatString.DateEdit;
if (DateTime.TryParse(value.ToString(), out ldt_DtTmp))
{
e.DisplayText = string.Format("{0:" + formatString + "}", ldt_DtTmp);
}
break;
case MVCxGridViewColumnType.SpinEdit:
break;
case MVCxGridViewColumnType.TimeEdit:
break;
}
}
break;
}
}
}
public void SetColumnControl(MVCxGridViewColumn ao_Column, NAPColumnControlType ao_ControlType, object[] ao_Object)
{
bool lb_IsRequired;
int li_MaxLength;
string ls_Text;
string ls_Value;
string ls_ValidationEvent;
string urlFormatString;
object lo_Model;
switch (ao_ControlType)
{
case NAPColumnControlType.Textbox:
li_MaxLength = Convert.ToInt32(ao_Object[0]);
lb_IsRequired = ao_Object[1] == null ? false : Convert.ToBoolean(ao_Object[1]);
ls_ValidationEvent = ao_Object[2] == null ? null : ao_Object[2].ToString();
ao_Column.EditorProperties().TextBox(p =>
{
p.MaxLength = li_MaxLength;
p.ValidationSettings.RequiredField.IsRequired = lb_IsRequired;
p.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(ao_Column.Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
p.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(ao_Column.Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
p.ValidationSettings.EnableCustomValidation = ls_ValidationEvent != null;
p.ClientSideEvents.Validation = ls_ValidationEvent;
});
break;
case NAPColumnControlType.DropDownList:
lo_Model = ao_Object[0];
ls_Text = ao_Object[1].ToString();
ls_Value = ao_Object[2].ToString();
lb_IsRequired = ao_Object[3] == null ? false : Convert.ToBoolean(ao_Object[3]);
ls_ValidationEvent = ao_Object[4] == null ? null : ao_Object[4].ToString();
ao_Column.EditorProperties().ComboBox(p =>
{
p.TextField = ls_Text;
p.ValueField = ls_Value;
p.ValueType = typeof(string);
p.DataSource = lo_Model;
p.ValidationSettings.RequiredField.IsRequired = lb_IsRequired;
p.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(ao_Column.Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
p.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(ao_Column.Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
p.ValidationSettings.EnableCustomValidation = ls_ValidationEvent != null;
p.ClientSideEvents.Validation = ls_ValidationEvent;
});
break;
case NAPColumnControlType.Hyperlink:
ao_Column.ColumnType = MVCxGridViewColumnType.HyperLink;
HyperLinkProperties properties = ao_Column.PropertiesEdit as HyperLinkProperties;
urlFormatString = ao_Object[0].ToString();
properties.NavigateUrlFormatString = HttpUtility.UrlDecode(urlFormatString);
properties.TextField = ao_Column.Caption;
properties.Target = "_blank";
break;
case NAPColumnControlType.Memo:
ao_Column.ColumnType = MVCxGridViewColumnType.Memo;
break;
}
}
public void SetColumnConditionalFormatting(string as_FieldName, string as_Condition, GridConditionHighlightFormat ao_HighlightFormat)
{
this._Settings.FormatConditions.AddHighlight(as_FieldName, as_Condition, ao_HighlightFormat);
}
public void CommonColumnSetting(MVCxGridViewColumn ao_Column, string as_FieldName, string as_Caption, int ai_Width, bool ab_Editable, bool ab_EditFormSettingsVisible, string as_DisplayFormatString = "", bool ab_IsRequired = false)
{
ao_Column.FieldName = as_FieldName;
ao_Column.Caption = Utils.GetTranslation(as_Caption);
ao_Column.HeaderStyle.Wrap = DefaultBoolean.True;
if (!string.IsNullOrWhiteSpace(as_DisplayFormatString))
{
ao_Column.PropertiesEdit.DisplayFormatString = as_DisplayFormatString;
}
if (ai_Width != 0)
ao_Column.Width = ai_Width;
if (ab_EditFormSettingsVisible)
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
else
ao_Column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
ao_Column.CellStyle.BackColor = System.Drawing.Color.Transparent;
if (ab_IsRequired)
gs_MandatoryField += as_FieldName + ",";
if (ab_Editable)
{
gs_EditField += as_FieldName + ",";
ao_Column.CellStyle.BackColor = Utils.GetColor.EditableColor;
}
gs_Fields += as_FieldName + ",";
}
/// <summary>
///
/// </summary>
/// <param name="as_FieldName">Field name</param>
/// <param name="as_Caption">Column caption</param>
/// <param name="ao_ColumnType">Column type</param>
/// <param name="ai_Width">Column width</param>
/// <param name="ab_Editable">Column editable</param>
/// <param name="ab_EditFormSettingsVisible">Column edit form settings visible</param>
/// <param name="as_DisplayFormatString">Column display format string. e.g: yyyyMMdd HH:mm:ss</param>
public void AddNormalColumn(string as_FieldName, string as_Caption, NAPColumnType ao_ColumnType, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "")
{
this._Settings.Columns.Add(column =>
{
switch (ao_ColumnType)
{
case NAPColumnType.DateTime:
column.Width = 120;
column.UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
break;
case NAPColumnType.Integer:
column.Width = 80;
column.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right;
column.CellStyle.HorizontalAlign = HorizontalAlign.Right;
break;
case NAPColumnType.Date:
column.Width = 90;
column.ColumnType = MVCxGridViewColumnType.DateEdit;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
//column.PropertiesEdit.DisplayFormatString = "yyyyMMdd";
break;
case NAPColumnType.String:
column.UnboundType = DevExpress.Data.UnboundColumnType.String;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
break;
}
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString);
});
}
public void AddTextBoxColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", int ai_MaxLength = 0, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_Mask = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.EditorProperties().TextBox(textBoxProperties =>
{
if (ai_MaxLength > 0) textBoxProperties.MaxLength = ai_MaxLength;
if (!string.IsNullOrWhiteSpace(as_Mask))
{
textBoxProperties.MaskSettings.Mask = as_Mask;
textBoxProperties.MaskSettings.IncludeLiterals = MaskIncludeLiteralsMode.All;
}
if (ab_IsRequired)
{
textBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
textBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
textBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
textBoxProperties.ValidationSettings.EnableCustomValidation = true;
textBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
});
}
public void AddDateEditorColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", string as_EditFormatString = "", DateTime? adt_MaxDate = null, DateTime? adt_MinDate = null, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_DropDownEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.DateEdit;
column.EditorProperties().DateEdit(dateEditProperties =>
{
dateEditProperties.UseMaskBehavior = true;
if (adt_MinDate != null) dateEditProperties.MinDate = (DateTime)adt_MinDate;
if (adt_MaxDate != null) dateEditProperties.MaxDate = (DateTime)adt_MaxDate;
//dateEditProperties.EditFormat = EditFormat.Date;
dateEditProperties.EditFormatString = as_EditFormatString;
dateEditProperties.DisplayFormatInEditMode = true;
dateEditProperties.EditFormat = EditFormat.Custom;
dateEditProperties.AllowUserInput = true;
dateEditProperties.AllowNull = true;
dateEditProperties.DisplayFormatString = as_DisplayFormatString;
if (ab_IsRequired)
{
dateEditProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
dateEditProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
dateEditProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (as_EditFormatString == Utils.GetFormatString.DateTimeEdit)
{
dateEditProperties.TimeSectionProperties.Visible = true;
dateEditProperties.TimeSectionProperties.TimeEditProperties.EditFormat = EditFormat.Custom;
dateEditProperties.TimeSectionProperties.ShowHourHand = true;
dateEditProperties.TimeSectionProperties.TimeEditProperties.EditFormatString = "HH:mm:ss";
dateEditProperties.CalendarProperties.FastNavProperties.EnablePopupAnimation = true;
dateEditProperties.ClientSideEvents.DropDown = as_DropDownEvent;
dateEditProperties.ClientSideEvents.CloseUp = "function(s,e){if(s.GetValue()==null||yyyy_MM_dd(s.GetValue(),'/')=='100/01/01') {s.GetTimeEdit().SetValue(null);s.SetValue(null);}}";
dateEditProperties.ClientSideEvents.ValueChanged = "function(s,e){if(s.GetValue()==null||yyyy_MM_dd(s.GetValue(),'/')=='100/01/01') {s.GetTimeEdit().SetValue(null);s.SetValue(null);}}";
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
dateEditProperties.ValidationSettings.EnableCustomValidation = true;
dateEditProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
});
}
public void AddTimeEditorColumn(HtmlHelper helper, string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", string as_EditFormatString = "", bool ab_IsRequired = false, string as_ValidationEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.EditorProperties().TextBox(textBoxProperties =>
{
textBoxProperties.MaxLength = 5;
textBoxProperties.MaskSettings.Mask = "00:00";
textBoxProperties.MaskSettings.IncludeLiterals = MaskIncludeLiteralsMode.All;
if (ab_IsRequired)
{
textBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
textBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
textBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
textBoxProperties.ValidationSettings.EnableCustomValidation = true;
textBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
});
}
public void AddComboboxColumn(string as_FieldName, string as_Caption, object ao_Model, string as_ValueFieldName, string as_TextFieldName, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_SelectChangedEvent = null, string as_Type = "Int", object ao_CallbackRouteValues = null, string as_BeginCallback = null, string as_EndCallback = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.ComboBox;
column.EditorProperties().ComboBox(comboBoxProperties =>
{
comboBoxProperties.TextField = as_TextFieldName;
comboBoxProperties.ValueField = as_ValueFieldName;
comboBoxProperties.ValueType = as_Type == "Int" ? typeof(int) : typeof(string);
comboBoxProperties.DataSource = ao_Model;
if (ao_CallbackRouteValues != null) comboBoxProperties.CallbackRouteValues = ao_CallbackRouteValues;
if (as_BeginCallback != null) comboBoxProperties.ClientSideEvents.BeginCallback = as_BeginCallback;
if (as_EndCallback != null) comboBoxProperties.ClientSideEvents.EndCallback = as_EndCallback;
if (ab_IsRequired)
{
comboBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
comboBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
comboBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
//if (!string.IsNullOrWhiteSpace(as_SelectChangedEvent))
//{
// comboBoxProperties.ClientSideEvents.SelectedIndexChanged = as_SelectChangedEvent;
//}
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
comboBoxProperties.ValidationSettings.EnableCustomValidation = true;
comboBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
if (!string.IsNullOrWhiteSpace(as_SelectChangedEvent))
{
comboBoxProperties.ClientSideEvents.SelectedIndexChanged = as_SelectChangedEvent;
}
comboBoxProperties.EnableSynchronization = DefaultBoolean.True;
});
});
}
public void AddHyperlinkColumn(string as_FieldName, string as_Caption, string as_urlFormatString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.HyperLink;
column.EditorProperties().HyperLink(hyperLinkProperties =>
{
hyperLinkProperties.NavigateUrlFormatString = HttpUtility.UrlDecode(as_urlFormatString);
hyperLinkProperties.TextField = as_FieldName;
hyperLinkProperties.Target = "_blank";
});
});
}
public void AddMapHyperlinkColumn(HtmlHelper helper, string as_FieldName, string as_Caption, string as_urlFormatString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = null, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_LatFieldName = "", string as_LngFieldName = "")
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired, as_DisplayFormatString: as_DisplayFormatString);
column.ColumnType = MVCxGridViewColumnType.HyperLink;
column.SetDataItemTemplateContent(container =>
{
if (container.VisibleIndex >= 0)
{
helper.DevExpress().HyperLink(hyperLinkProperties =>
{
var ls_KeyValue = container.KeyValue;
if (DataBinder.Eval(container.DataItem, as_FieldName) != DBNull.Value && DataBinder.Eval(container.DataItem, as_FieldName).ToString() != "")
if (as_DisplayFormatString == Utils.GetFormatString.DateTimeDisplay)
hyperLinkProperties.Properties.Text = Convert.ToDateTime(DataBinder.Eval(container.DataItem, as_FieldName).ToString()).ToString(Utils.GetFormatString.DateTimeDisplay);
else
hyperLinkProperties.Properties.Text = DataBinder.Eval(container.DataItem, as_FieldName).ToString();
hyperLinkProperties.Name = "lnk_" + as_FieldName + ls_KeyValue + Utils.GenerateRandom(4);
hyperLinkProperties.Properties.NavigateUrlFormatString = HttpUtility.UrlDecode(String.Format(as_urlFormatString, DataBinder.Eval(container.DataItem, as_LatFieldName), DataBinder.Eval(container.DataItem, as_LngFieldName)));
hyperLinkProperties.Properties.TextField = as_FieldName;
hyperLinkProperties.Properties.ClientSideEvents.Click = "function(s,e){window.open('" + hyperLinkProperties.Properties.NavigateUrlFormatString + "', '_blank')}";
hyperLinkProperties.Properties.Target = "_blank";
}).Render();
}
else
{
if (DataBinder.Eval(container.DataItem, as_FieldName) != null)
helper.ViewContext.Writer.Write(DataBinder.Eval(container.DataItem, as_FieldName).ToString());
}
});
});
}
public void AddMemoColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.Memo;
column.EditorProperties().Memo(memoProperties =>
{
if (ab_IsRequired)
{
memoProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
memoProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
memoProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
memoProperties.ValidationSettings.EnableCustomValidation = true;
memoProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
});
}
public void AddCheckBoxColumn(string as_FieldName, string as_Caption, object ao_ValueChecked, object ao_ValueUnchecked, Type ao_ValueType, string as_ValueCheckedString, string as_ValueUncheckedString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.CheckBox;
var checkBoxProperties = column.PropertiesEdit as CheckBoxProperties;
checkBoxProperties.ValueChecked = ao_ValueChecked;
checkBoxProperties.ValueUnchecked = ao_ValueUnchecked;
checkBoxProperties.ValueType = ao_ValueType;
checkBoxProperties.ValueCheckedString = as_ValueCheckedString;
checkBoxProperties.ValueUncheckedString = as_ValueUncheckedString;
});
}
public void AddCheckBoxColumnWithinHeader(HtmlHelper helper, string as_FieldName, string as_Caption, object ao_ValueChecked, object ao_ValueUnchecked, Type ao_ValueType, string as_ValueCheckedString, string as_ValueUncheckedString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.SetHeaderTemplateContent(c =>
{
helper.DevExpress().CheckBox(chkSettings =>
{
chkSettings.Text = as_Caption;
chkSettings.Name = "chk" + this._Settings.Name + as_FieldName + "_SelectAll";
chkSettings.ControlStyle.Font.Underline = false;
chkSettings.Width = Unit.Percentage(100);
chkSettings.ControlStyle.HorizontalAlign = HorizontalAlign.Center;
chkSettings.Properties.ClientSideEvents.CheckedChanged = "function (s,e){ On" + chkSettings.Name + "(s,e);}";
}).Render();
});
column.ColumnType = MVCxGridViewColumnType.CheckBox;
var checkBoxProperties = column.PropertiesEdit as CheckBoxProperties;
checkBoxProperties.ValueChecked = ao_ValueChecked;
checkBoxProperties.ValueUnchecked = ao_ValueUnchecked;
checkBoxProperties.ValueType = ao_ValueType;
checkBoxProperties.ValueCheckedString = as_ValueCheckedString;
checkBoxProperties.ValueUncheckedString = as_ValueUncheckedString;
column.Settings.AllowSort = DefaultBoolean.False;
});
}
public void AddHyperlinkDynamicClientSideColumn(string as_FieldName, string as_Caption, HtmlHelper helper, string[] aa_DataFieldName, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = null, string as_ClientSideEventName = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible);
column.SetDataItemTemplateContent(container =>
{
if (container.VisibleIndex < 0)
return;
object[] la_DataValue = new object[aa_DataFieldName.Length];
bool lb_Valid = true;
string ls_ValueString = "";
for (int i = 0; i < aa_DataFieldName.Length; i++)
{
if (!string.IsNullOrWhiteSpace(aa_DataFieldName[i]))
{
la_DataValue[i] = DataBinder.Eval(container.DataItem, aa_DataFieldName[i]);
}
}
for (int i = 0; i < la_DataValue.Length; i++)
{
if (la_DataValue[i] == null)
{
lb_Valid = false;
}
else
{
ls_ValueString = ls_ValueString + "'" + (la_DataValue[i] == DBNull.Value ? "" : la_DataValue[i].ToString()) + "',";
}
}
if (lb_Valid)
{
if (ls_ValueString != "")
{
ls_ValueString = ls_ValueString.Substring(0, ls_ValueString.Length - 1);
if (ls_ValueString != "''")
{
helper.DevExpress().HyperLink(hyperlink =>
{
var ls_KeyValue = container.KeyValue;
hyperlink.Name = "lnk_" + as_FieldName + ls_KeyValue + Utils.GenerateRandom(4);
if (as_DisplayFormatString == Utils.GetFormatString.DateDisplay)
hyperlink.Properties.Text = Convert.ToDateTime(DataBinder.Eval(container.DataItem, as_FieldName).ToString()).ToString(Utils.GetFormatString.DateDisplay);
else
hyperlink.Properties.Text = DataBinder.Eval(container.DataItem, as_FieldName).ToString();
hyperlink.Properties.TextField = as_FieldName;
hyperlink.Properties.ClientSideEvents.Click = "function (s,e){ " + as_ClientSideEventName + "(" + ls_ValueString + ");}";
hyperlink.Properties.Target = "_blank";
}).Render();
}
else
{
helper.ViewContext.Writer.Write("");
}
}
}
else
{
if (DataBinder.Eval(container.DataItem, as_FieldName) != null)
helper.ViewContext.Writer.Write(DataBinder.Eval(container.DataItem, as_FieldName).ToString());
}
});
});
}
/// <summary>
/// Only support decimal or Integer
/// </summary>
/// <param name="as_FieldName"></param>
/// <param name="as_Caption"></param>
/// <param name="ai_Width"></param>
/// <param name="ab_Editable"></param>
/// <param name="ab_EditFormSettingsVisible"></param>
/// <param name="as_DisplayFormatString">Displayformat E.g n2,d</param>
/// <param name="ao_NumberType">Decimal or Integer </param>
/// <param name="afl_MinValue">Min value</param>
/// <param name="afl_MaxValue">Max value</param>
/// <param name="ab_IsRequired"></param>
/// <param name="as_ValidationEvent"></param>
public void AddNumberColumn(HtmlHelper helper, string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", SpinEditNumberType ao_NumberType = SpinEditNumberType.Float, float? afl_MinValue = null, float? afl_MaxValue = null, bool ab_IsRequired = false, string as_ValidationEvent = null, DevExpress.Data.SummaryItemType ao_SummaryType = DevExpress.Data.SummaryItemType.None, bool ab_IsRealTimeCalTotalSum = false)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.TextBox;
column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right;
column.CellStyle.HorizontalAlign = HorizontalAlign.Right;
column.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
column.EditorProperties().SpinEdit(spinEditProperties =>
{
spinEditProperties.NumberFormat = SpinEditNumberFormat.Custom;
spinEditProperties.DisplayFormatString = as_DisplayFormatString;
spinEditProperties.DisplayFormatInEditMode = true;
spinEditProperties.NumberType = ao_NumberType;
//spinEditProperties.AllowNull = false;
spinEditProperties.SpinButtons.Visible = false;
spinEditProperties.SpinButtons.ShowLargeIncrementButtons = false;
spinEditProperties.SpinButtons.ShowIncrementButtons = false;
spinEditProperties.Increment = 0;
spinEditProperties.AllowMouseWheel = false;
if (afl_MinValue != null) spinEditProperties.MinValue = (decimal)afl_MinValue;
if (afl_MaxValue != null) spinEditProperties.MaxValue = (decimal)afl_MaxValue;
if (ab_IsRequired)
{
spinEditProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
spinEditProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
spinEditProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
spinEditProperties.ValidationSettings.EnableCustomValidation = true;
spinEditProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
if (ab_IsRealTimeCalTotalSum)
{
ASPxSummaryItem summaryItem = new ASPxSummaryItem(column.FieldName, DevExpress.Data.SummaryItemType.Sum);
summaryItem.Tag = "SummaryItem_Sum_" + column.FieldName;
this._Settings.TotalSummary.Add(summaryItem);
column.SetFooterTemplateContent(c =>
{
helper.DevExpress().Label(lbSettings =>
{
string fieldName = (c.Column as GridViewDataColumn).FieldName;
//c.data
lbSettings.Name = "lbl_Sum_" + fieldName;
lbSettings.Properties.EnableClientSideAPI = true;
ASPxSummaryItem summaryItem1 = c.Grid.TotalSummary.First(i => i.Tag == ("SummaryItem_Sum_" + fieldName));
lbSettings.Text = string.Format("{0:" + as_DisplayFormatString + "}", (c.Grid.GetTotalSummaryValue(summaryItem1) ?? 0));
}).Render();
});
}
});
this._Settings.TotalSummary.Add(ao_SummaryType, as_FieldName).DisplayFormat = as_DisplayFormatString;
}
public void ChangeCellColor(dynamic ao_Model, ASPxGridViewTableDataCellEventArgs e)
{
//string[] la_Fields = this.gs_Fields.Split(',');
//for (int i = 0; i < la_Fields.Count(); i++)
//{
for (int j = 0; j < ao_Model.Tables[0].Rows.Count; j++)
{
if (e.DataColumn.FieldName == ao_Model.Tables[0].Rows[j]["FieldName"].ToString())// && ao_Model.Tables[0].Rows[j]["FieldName"].ToString() == la_Fields[i].ToString())
{
if (e.KeyValue != null && e.KeyValue.ToString() == ao_Model.Tables[0].Rows[j]["TableUID"].ToString() && ao_Model.Tables[0].Rows[j]["IsChanged"].ToString() == "1")
{
//if (e.DataColumn.FieldName == ao_Model.Tables[0].Rows[j][2].ToString())
//{
e.Cell.BackColor = Utils.GetColor.ChangedColor;
break;
//}
}
}
}
}
public void AddButtonColumn(HtmlHelper helper, string as_FieldName, string as_Caption, string as_ParamField, int ai_Width = 0,
bool ab_EditFormSettingsVisible = false, string as_OnClickEvent = null)
{
this._Settings.Columns.Add(column =>
{
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, false, ab_EditFormSettingsVisible, "", false);
column.UnboundType = DevExpress.Data.UnboundColumnType.String;
//column.EditorProperties().TextBox(textBoxProperties =>
//{
// if (ai_MaxLength < 0) textBoxProperties.MaxLength = ai_MaxLength;
// if (!string.IsNullOrWhiteSpace(as_Mask))
// {
// textBoxProperties.MaskSettings.Mask = as_Mask;
// textBoxProperties.MaskSettings.IncludeLiterals = MaskIncludeLiteralsMode.All;
// }
// if (ab_IsRequired)
// {
// textBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
// textBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
// textBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
// }
// if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
// {
// textBoxProperties.ValidationSettings.EnableCustomValidation = true;
// textBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
// }
//});
column.SetDataItemTemplateContent(container =>
{
if (container.VisibleIndex < 0)
return;
var ls_ParamValue = DataBinder.Eval(container.DataItem, as_ParamField).ToString();
helper.DevExpress().Button(buttonSetting =>
{
buttonSetting.Text = "View";
buttonSetting.Name = "btnView" + as_FieldName + container.VisibleIndex;
buttonSetting.Width = Unit.Percentage(100);
if (!string.IsNullOrWhiteSpace(as_OnClickEvent))
{
buttonSetting.ClientSideEvents.Click = "function(s,e){ " + as_OnClickEvent + "(" + ls_ParamValue + "); }";
}
}).Render();
});
});
}
#region Bank Column Setting
public MVCxGridViewColumn AddBandNormalColumn(string as_FieldName, string as_Caption, NAPColumnType ao_ColumnType, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "")
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
switch (ao_ColumnType)
{
case NAPColumnType.DateTime:
column.Width = 120;
column.UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.False;
break;
case NAPColumnType.Integer:
column.Width = 80;
column.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right;
column.CellStyle.HorizontalAlign = HorizontalAlign.Right;
break;
case NAPColumnType.Date:
column.Width = 90;
column.ColumnType = MVCxGridViewColumnType.DateEdit;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
//column.PropertiesEdit.DisplayFormatString = "yyyyMMdd";
break;
case NAPColumnType.String:
column.UnboundType = DevExpress.Data.UnboundColumnType.String;
column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
column.Settings.AutoFilterCondition = AutoFilterCondition.Contains;
break;
}
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString);
return column;
}
public MVCxGridViewColumn AddBandTextBoxColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", int ai_MaxLength = 0, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_Mask = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.EditorProperties().TextBox(textBoxProperties =>
{
if (ai_MaxLength > 0) textBoxProperties.MaxLength = ai_MaxLength;
if (!string.IsNullOrWhiteSpace(as_Mask))
{
textBoxProperties.MaskSettings.Mask = as_Mask;
textBoxProperties.MaskSettings.IncludeLiterals = MaskIncludeLiteralsMode.All;
}
if (ab_IsRequired)
{
textBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
textBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
textBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
textBoxProperties.ValidationSettings.EnableCustomValidation = true;
textBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
return column;
}
public MVCxGridViewColumn AddBandDateEditorColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", string as_EditFormatString = "", DateTime? adt_MaxDate = null, DateTime? adt_MinDate = null, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_DropDownEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.DateEdit;
column.EditorProperties().DateEdit(dateEditProperties =>
{
dateEditProperties.UseMaskBehavior = true;
if (adt_MinDate != null) dateEditProperties.MinDate = (DateTime)adt_MinDate;
if (adt_MaxDate != null) dateEditProperties.MaxDate = (DateTime)adt_MaxDate;
//dateEditProperties.EditFormat = EditFormat.Date;
dateEditProperties.EditFormatString = as_EditFormatString;
dateEditProperties.DisplayFormatInEditMode = true;
dateEditProperties.EditFormat = EditFormat.Custom;
dateEditProperties.AllowUserInput = true;
dateEditProperties.AllowNull = true;
dateEditProperties.DisplayFormatString = as_DisplayFormatString;
if (ab_IsRequired)
{
dateEditProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
dateEditProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
dateEditProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (as_EditFormatString == Utils.GetFormatString.DateTimeEdit)
{
dateEditProperties.TimeSectionProperties.Visible = true;
dateEditProperties.TimeSectionProperties.TimeEditProperties.EditFormat = EditFormat.Custom;
dateEditProperties.TimeSectionProperties.ShowHourHand = true;
dateEditProperties.TimeSectionProperties.TimeEditProperties.EditFormatString = "HH:mm:ss";
dateEditProperties.CalendarProperties.FastNavProperties.EnablePopupAnimation = true;
dateEditProperties.ClientSideEvents.DropDown = as_DropDownEvent;
dateEditProperties.ClientSideEvents.CloseUp = "function(s,e){if(s.GetValue()==null||yyyy_MM_dd(s.GetValue(),'/')=='100/01/01') {s.GetTimeEdit().SetValue(null);s.SetValue(null);}}";
dateEditProperties.ClientSideEvents.ValueChanged = "function(s,e){if(s.GetValue()==null||yyyy_MM_dd(s.GetValue(),'/')=='100/01/01') {s.GetTimeEdit().SetValue(null);s.SetValue(null);}}";
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
dateEditProperties.ValidationSettings.EnableCustomValidation = true;
dateEditProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
return column;
}
public MVCxGridViewColumn AddBandTimeEditorColumn(HtmlHelper helper, string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", string as_EditFormatString = "", bool ab_IsRequired = false, string as_ValidationEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired);
column.EditorProperties().TextBox(textBoxProperties =>
{
textBoxProperties.MaxLength = 5;
textBoxProperties.MaskSettings.Mask = "00:00";
textBoxProperties.MaskSettings.IncludeLiterals = MaskIncludeLiteralsMode.All;
if (ab_IsRequired)
{
textBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
textBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
textBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
textBoxProperties.ValidationSettings.EnableCustomValidation = true;
textBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
return column;
}
public MVCxGridViewColumn AddBandComboboxColumn(string as_FieldName, string as_Caption, object ao_Model, string as_ValueFieldName, string as_TextFieldName, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_SelectChangedEvent = null, string as_Type = "Int", object ao_CallbackRouteValues = null, string as_BeginCallback = null, string as_EndCallback = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.ComboBox;
column.EditorProperties().ComboBox(comboBoxProperties =>
{
comboBoxProperties.TextField = as_TextFieldName;
comboBoxProperties.ValueField = as_ValueFieldName;
comboBoxProperties.ValueType = as_Type == "Int" ? typeof(int) : typeof(string);
comboBoxProperties.DataSource = ao_Model;
if (ao_CallbackRouteValues != null) comboBoxProperties.CallbackRouteValues = ao_CallbackRouteValues;
if (as_BeginCallback != null) comboBoxProperties.ClientSideEvents.BeginCallback = as_BeginCallback;
if (as_EndCallback != null) comboBoxProperties.ClientSideEvents.EndCallback = as_EndCallback;
if (ab_IsRequired)
{
comboBoxProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
comboBoxProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
comboBoxProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
//if (!string.IsNullOrWhiteSpace(as_SelectChangedEvent))
//{
// comboBoxProperties.ClientSideEvents.SelectedIndexChanged = as_SelectChangedEvent;
//}
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
comboBoxProperties.ValidationSettings.EnableCustomValidation = true;
comboBoxProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
if (!string.IsNullOrWhiteSpace(as_SelectChangedEvent))
{
comboBoxProperties.ClientSideEvents.SelectedIndexChanged = as_SelectChangedEvent;
}
comboBoxProperties.EnableSynchronization = DefaultBoolean.True;
});
return column;
}
public MVCxGridViewColumn AddBandHyperlinkColumn(string as_FieldName, string as_Caption, string as_urlFormatString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.HyperLink;
column.EditorProperties().HyperLink(hyperLinkProperties =>
{
hyperLinkProperties.NavigateUrlFormatString = HttpUtility.UrlDecode(as_urlFormatString);
hyperLinkProperties.TextField = as_FieldName;
hyperLinkProperties.Target = "_blank";
});
return column;
}
public MVCxGridViewColumn AddBandMapHyperlinkColumn(HtmlHelper helper, string as_FieldName, string as_Caption, string as_urlFormatString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = null, bool ab_IsRequired = false, string as_ValidationEvent = null, string as_LatFieldName = "", string as_LngFieldName = "")
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired, as_DisplayFormatString: as_DisplayFormatString);
column.ColumnType = MVCxGridViewColumnType.HyperLink;
column.SetDataItemTemplateContent(container =>
{
if (container.VisibleIndex >= 0)
{
helper.DevExpress().HyperLink(hyperLinkProperties =>
{
var ls_KeyValue = container.KeyValue;
if (DataBinder.Eval(container.DataItem, as_FieldName) != DBNull.Value && DataBinder.Eval(container.DataItem, as_FieldName).ToString() != "")
if (as_DisplayFormatString == Utils.GetFormatString.DateTimeDisplay)
hyperLinkProperties.Properties.Text = Convert.ToDateTime(DataBinder.Eval(container.DataItem, as_FieldName).ToString()).ToString(Utils.GetFormatString.DateTimeDisplay);
else
hyperLinkProperties.Properties.Text = DataBinder.Eval(container.DataItem, as_FieldName).ToString();
hyperLinkProperties.Name = "lnk_" + as_FieldName + ls_KeyValue + Utils.GenerateRandom(4);
hyperLinkProperties.Properties.NavigateUrlFormatString = HttpUtility.UrlDecode(String.Format(as_urlFormatString, DataBinder.Eval(container.DataItem, as_LatFieldName), DataBinder.Eval(container.DataItem, as_LngFieldName)));
hyperLinkProperties.Properties.TextField = as_FieldName;
hyperLinkProperties.Properties.ClientSideEvents.Click = "function(s,e){window.open('" + hyperLinkProperties.Properties.NavigateUrlFormatString + "', '_blank')}";
hyperLinkProperties.Properties.Target = "_blank";
}).Render();
}
else
{
if (DataBinder.Eval(container.DataItem, as_FieldName) != null)
helper.ViewContext.Writer.Write(DataBinder.Eval(container.DataItem, as_FieldName).ToString());
}
});
return column;
}
public MVCxGridViewColumn AddBandMemoColumn(string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.Memo;
column.EditorProperties().Memo(memoProperties =>
{
if (ab_IsRequired)
{
memoProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
memoProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
memoProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
memoProperties.ValidationSettings.EnableCustomValidation = true;
memoProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
return column;
}
public MVCxGridViewColumn AddBandCheckBoxColumn(string as_FieldName, string as_Caption, object ao_ValueChecked, object ao_ValueUnchecked, Type ao_ValueType, string as_ValueCheckedString, string as_ValueUncheckedString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.CheckBox;
var checkBoxProperties = column.PropertiesEdit as CheckBoxProperties;
checkBoxProperties.ValueChecked = ao_ValueChecked;
checkBoxProperties.ValueUnchecked = ao_ValueUnchecked;
checkBoxProperties.ValueType = ao_ValueType;
checkBoxProperties.ValueCheckedString = as_ValueCheckedString;
checkBoxProperties.ValueUncheckedString = as_ValueUncheckedString;
return column;
}
public MVCxGridViewColumn AddBandCheckBoxColumnWithinHeader(HtmlHelper helper, string as_FieldName, string as_Caption, object ao_ValueChecked, object ao_ValueUnchecked, Type ao_ValueType, string as_ValueCheckedString, string as_ValueUncheckedString, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, bool ab_IsRequired = false, string as_ValidationEvent = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, ab_IsRequired: ab_IsRequired);
column.SetHeaderTemplateContent(c =>
{
helper.DevExpress().CheckBox(chkSettings =>
{
chkSettings.Text = as_Caption;
chkSettings.Name = "chk" + this._Settings.Name + as_FieldName + "_SelectAll";
chkSettings.ControlStyle.Font.Underline = false;
chkSettings.Width = Unit.Percentage(100);
chkSettings.ControlStyle.HorizontalAlign = HorizontalAlign.Center;
chkSettings.Properties.ClientSideEvents.CheckedChanged = "function (s,e){ On" + chkSettings.Name + "(s,e);}";
}).Render();
});
column.ColumnType = MVCxGridViewColumnType.CheckBox;
var checkBoxProperties = column.PropertiesEdit as CheckBoxProperties;
checkBoxProperties.ValueChecked = ao_ValueChecked;
checkBoxProperties.ValueUnchecked = ao_ValueUnchecked;
checkBoxProperties.ValueType = ao_ValueType;
checkBoxProperties.ValueCheckedString = as_ValueCheckedString;
checkBoxProperties.ValueUncheckedString = as_ValueUncheckedString;
column.Settings.AllowSort = DefaultBoolean.False;
return column;
}
public MVCxGridViewColumn AddBandHyperlinkDynamicClientSideColumn(string as_FieldName, string as_Caption, HtmlHelper helper, string[] aa_DataFieldName, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = null, string as_ClientSideEventName = null)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible);
column.SetDataItemTemplateContent(container =>
{
if (container.VisibleIndex < 0)
return;
object[] la_DataValue = new object[aa_DataFieldName.Length];
bool lb_Valid = true;
string ls_ValueString = "";
for (int i = 0; i < aa_DataFieldName.Length; i++)
{
if (!string.IsNullOrWhiteSpace(aa_DataFieldName[i]))
{
la_DataValue[i] = DataBinder.Eval(container.DataItem, aa_DataFieldName[i]);
}
}
for (int i = 0; i < la_DataValue.Length; i++)
{
if (la_DataValue[i] == null)
{
lb_Valid = false;
}
else
{
ls_ValueString = ls_ValueString + "'" + (la_DataValue[i] == DBNull.Value ? "" : la_DataValue[i].ToString()) + "',";
}
}
if (lb_Valid)
{
if (ls_ValueString != "")
{
ls_ValueString = ls_ValueString.Substring(0, ls_ValueString.Length - 1);
if (ls_ValueString != "''")
{
helper.DevExpress().HyperLink(hyperlink =>
{
var ls_KeyValue = container.KeyValue;
hyperlink.Name = "lnk_" + as_FieldName + ls_KeyValue + Utils.GenerateRandom(4);
if (as_DisplayFormatString == Utils.GetFormatString.DateDisplay)
hyperlink.Properties.Text = Convert.ToDateTime(DataBinder.Eval(container.DataItem, as_FieldName).ToString()).ToString(Utils.GetFormatString.DateDisplay);
else
hyperlink.Properties.Text = DataBinder.Eval(container.DataItem, as_FieldName).ToString();
hyperlink.Properties.TextField = as_FieldName;
hyperlink.Properties.ClientSideEvents.Click = "function (s,e){ " + as_ClientSideEventName + "(" + ls_ValueString + ");}";
hyperlink.Properties.Target = "_blank";
}).Render();
}
else
{
helper.ViewContext.Writer.Write("");
}
}
}
else
{
if (DataBinder.Eval(container.DataItem, as_FieldName) != null)
helper.ViewContext.Writer.Write(DataBinder.Eval(container.DataItem, as_FieldName).ToString());
}
});
return column;
}
public MVCxGridViewColumn AddBandNumberColumn(HtmlHelper helper, string as_FieldName, string as_Caption, int ai_Width = 0, bool ab_Editable = false, bool ab_EditFormSettingsVisible = false, string as_DisplayFormatString = "", SpinEditNumberType ao_NumberType = SpinEditNumberType.Float, float? afl_MinValue = null, float? afl_MaxValue = null, bool ab_IsRequired = false, string as_ValidationEvent = null, DevExpress.Data.SummaryItemType ao_SummaryType = DevExpress.Data.SummaryItemType.None, bool ab_IsRealTimeCalTotalSum = false)
{
MVCxGridViewColumn column = new MVCxGridViewColumn();
this.CommonColumnSetting(column, as_FieldName, as_Caption, ai_Width, ab_Editable, ab_EditFormSettingsVisible, as_DisplayFormatString, ab_IsRequired: ab_IsRequired);
column.ColumnType = MVCxGridViewColumnType.TextBox;
column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right;
column.CellStyle.HorizontalAlign = HorizontalAlign.Right;
column.UnboundType = DevExpress.Data.UnboundColumnType.Decimal;
column.EditorProperties().SpinEdit(spinEditProperties =>
{
spinEditProperties.NumberFormat = SpinEditNumberFormat.Custom;
spinEditProperties.DisplayFormatString = as_DisplayFormatString;
spinEditProperties.DisplayFormatInEditMode = true;
spinEditProperties.NumberType = ao_NumberType;
//spinEditProperties.AllowNull = false;
spinEditProperties.SpinButtons.Visible = false;
spinEditProperties.SpinButtons.ShowLargeIncrementButtons = false;
spinEditProperties.SpinButtons.ShowIncrementButtons = false;
spinEditProperties.Increment = 0;
spinEditProperties.AllowMouseWheel = false;
if (afl_MinValue != null) spinEditProperties.MinValue = (decimal)afl_MinValue;
if (afl_MaxValue != null) spinEditProperties.MaxValue = (decimal)afl_MaxValue;
if (ab_IsRequired)
{
spinEditProperties.ValidationSettings.RequiredField.IsRequired = ab_IsRequired;
spinEditProperties.ValidationSettings.RequiredField.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
spinEditProperties.ValidationSettings.ErrorText = Utils.GetMessage("1001", "[" + Utils.GenerateJson("1", Utils.GetTranslation(as_Caption), "String") + Utils.GenerateJson("2", " ", "String").Remove(Utils.GenerateJson("2", " ", "String").Length - 1) + "]");
}
if (!string.IsNullOrWhiteSpace(as_ValidationEvent))
{
spinEditProperties.ValidationSettings.EnableCustomValidation = true;
spinEditProperties.ClientSideEvents.Validation = as_ValidationEvent;
}
});
if (ab_IsRealTimeCalTotalSum)
{
ASPxSummaryItem summaryItem = new ASPxSummaryItem(column.FieldName, DevExpress.Data.SummaryItemType.Sum);
summaryItem.Tag = "SummaryItem_Sum_" + column.FieldName;
this._Settings.TotalSummary.Add(summaryItem);
column.SetFooterTemplateContent(c =>
{
helper.DevExpress().Label(lbSettings =>
{
string fieldName = (c.Column as GridViewDataColumn).FieldName;
//c.data
lbSettings.Name = "lbl_Sum_" + fieldName;
lbSettings.Properties.EnableClientSideAPI = true;
ASPxSummaryItem summaryItem1 = c.Grid.TotalSummary.First(i => i.Tag == ("SummaryItem_Sum_" + fieldName));
lbSettings.Text = string.Format("{0:" + as_DisplayFormatString + "}", (c.Grid.GetTotalSummaryValue(summaryItem1) ?? 0));
}).Render();
});
}
this._Settings.TotalSummary.Add(ao_SummaryType, as_FieldName).DisplayFormat = as_DisplayFormatString;
return column;
}
#endregion
}
}