Hello,
How to implement server side validation control in Grid View. for your reference i am attaching snapshot.
C#@Html.DevExpress().GridView(settings =>
{
settings.Name = "ProfileGrid";
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.Columns.Add(column =>
{
column.Caption = Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resActive;
column.FieldName = "IsProfileActive";
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().CheckBox(dSettings =>
{
dSettings.Name = "IsProfileActiveP" + c.KeyValue;
dSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
// dSettings.Width = Unit.Pixel(60);
dSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
}).Bind(DataBinder.Eval(c.DataItem, c.Column.FieldName)).Render();
});
});
settings.Columns.Add("ProfileName", Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resProfile);
settings.Columns.Add(column =>
{
column.FieldName = "AccessType";
column.Caption = Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resAccessType;
column.ColumnType = MVCxGridViewColumnType.ComboBox;
var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().ComboBox(editorSettings =>
{
editorSettings.Name = "comboAccesss" + c.VisibleIndex;
editorSettings.Properties.TextField = "DisplayName";
editorSettings.Properties.ValueField = "Value";
editorSettings.Properties.ValueType = typeof(Bixi.Atlas.Client.MVC.TicketPortal.ManageAccess.Enums.AccessType);
editorSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
editorSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
}).BindList(ViewBag.AcessType)
.Bind(DataBinder.Eval(c.DataItem, "AccessType")).Render();
});
});
settings.Columns.Add(column =>
{
column.FieldName = "WeeklyPlanID";
column.Caption =Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resWeeklyPlan;
column.ColumnType = MVCxGridViewColumnType.ComboBox;
var comboBoxProperties = column.PropertiesEdit as ComboBoxProperties;
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().ComboBox(editorSettings =>
{
editorSettings.Name = "comboWeeklyPlant" + c.VisibleIndex;
editorSettings.Properties.TextField = "WEEKLYPLAN_NAME";
editorSettings.Properties.ValueField = "WEEKLYPLAN_ID";
editorSettings.Properties.ValueType = typeof(Guid);
editorSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
editorSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
}).BindList(ViewBag.WeeKlyPlan)
.Bind(DataBinder.Eval(c.DataItem, "WeeklyPlanID")).Render();
});
});
settings.Columns.Add(column =>
{
column.Caption=Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resDateFrom;
column.FieldName = "FromDate";
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().DateEdit(dSettings =>
{
dSettings.Name = "datefrom" + c.KeyValue;
dSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
dSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
}).Bind(DataBinder.Eval(c.DataItem, c.Column.FieldName)).Render();
});
});
settings.Columns.Add(column =>
{
column.Caption=Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resDateTo;
column.FieldName = "ToDate";
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().DateEdit(dSettings =>
{
dSettings.Name = "dateto" + c.KeyValue;
dSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
dSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
}).Bind(DataBinder.Eval(c.DataItem, c.Column.FieldName)).Render();
});
});
settings.Columns.Add(column =>
{
column.Caption=Bixi_Atlas_Client_MVC_TicketPortal_MA_Localization.resRemarks;
column.FieldName = "Remarks";
column.SetDataItemTemplateContent(c =>
{
Html.DevExpress().TextBox(dSettings =>
{
dSettings.Name = "Remarks" + c.KeyValue;
dSettings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
var prop = (TextEditProperties)column.PropertiesEdit;
prop.ValidationSettings.RequiredField.IsRequired = true;
prop.ValidationSettings.RequiredField.ErrorText = "Please Enter Value";
prop.ValidationSettings.ValidateOnLeave = true;
dSettings.Properties.ClientSideEvents.ValueChanged = String.Format("function (s, e) {{ OnValueChanged(s, '{0}', '{1}', '{2}'); }}",
c.Column.FieldName, c.KeyValue, Url.Action("UpdateProfileValue", "ManageAccess", null));
}).Bind(DataBinder.Eval(c.DataItem, c.Column.FieldName)).Render();
});
});
settings.KeyFieldName = "ProfileZoneID";
settings.Settings.VerticalScrollBarStyle = GridViewVerticalScrollBarStyle.Standard;
settings.Settings.VerticalScrollBarMode = ScrollBarMode.Auto;
settings.SettingsPager.Visible = false;
settings.SettingsPager.Mode = GridViewPagerMode.ShowAllRecords;
settings.SettingsBehavior.AllowSelectSingleRowOnly = true;
settings.SettingsBehavior.AllowSelectByRowClick = true;
settings.SettingsBehavior.AllowSort = false;
settings.HtmlRowPrepared = (sender, e) =>
{
if (e.RowType != GridViewRowType.Data)
return;
e.Row.CssClass = e.GetValue("ROW_STYLE").ToString();
};
}).Bind(Model.CurrentActor.Profiles).GetHtml()
Hello Naveen,
Before we provide your with the best solution, would you please clarify some point? Why are you using DataItem templates? Isn't it better to utilize batch editing as shown in thisdemo? Why do you wish to use server-side validation? I believe it is better to use built-in validation or utilize client-side validation.
Hello can you provide the small sample for that.
Hello,
As Marion mentioned in the previous comment, it's difficult to provide you with a solution without detailed information about your requirements. Please describe your scenario and clarify the questions in the previous comment.
We will do our best to help you.
Requirement is as I attached screenshot if user enter empty remark or invalid date from and invalid date to (like date from should not be greater than date to) and when I press save button error will be displayed it should not be saved
Regards
Sunil