I have a Radgrid where I am doing some extra validation on the InsertMethod. If that validation fails, I need to make sure that the editor stays open so that the user can still perform editing on the form.
My radgrid is declared as follows:
<
telerik:RadGrid
ID
=
"rgRuleExemptions"
runat
=
"server"
AutoGenerateColumns
=
"false"
AllowPaging
=
"true"
AllowSorting
=
"true"
ClientSettings-EnableRowHoverStyle
=
"true"
EnableEmbeddedSkins
=
"False"
HeaderStyle-Wrap
=
"False"
RenderMode
=
"Lightweight"
HeaderStyle-ForeColor
=
"White"
PageSize
=
"10"
OnItemDataBound
=
"RadGridRuleExemptions_ItemDataBound"
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
/>
<
MasterTableView
AutoGenerateColumns
=
"false"
DataKeyNames
=
"Id"
SelectMethod
=
"GetRuleExemptions"
InsertMethod
=
"AddRuleExemption"
UpdateMethod
=
"UpdateRuleExemption"
ItemType
=
"RuleExemptions"
CommandItemDisplay
=
"Top"
>
<
CommandItemSettings
/>
<
CommandItemTemplate
>
<
div
class
=
"text-right"
style
=
"background-color: transparent; padding: 5px 5px 5px 5px;"
>
<
asp:Button
ID
=
"btnAddRuleExemption"
runat
=
"server"
CssClass
=
"button button-teal button-medium"
Text
=
"Add New Record"
CausesValidation
=
"False"
CommandName
=
"InitInsert"
/>
</
div
>
</
CommandItemTemplate
>
<
Columns
>
<
telerik:GridButtonColumn
UniqueName
=
"EditItem"
CommandName
=
"Edit"
ItemStyle-Width
=
"40"
ItemStyle-HorizontalAlign
=
"Center"
ItemStyle-ForeColor
=
"White"
Text
=
"Edit"
ButtonType
=
"LinkButton"
ButtonCssClass
=
"button button-teal button-small"
>
<
HeaderStyle
Font-Bold
=
"true"
/>
</
telerik:GridButtonColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Id"
HeaderText
=
"Id"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblId"
runat
=
"server"
Text='<%# Item.Id %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Category"
HeaderText
=
"Category"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblCategory"
runat
=
"server"
Text='<%# Item.Category %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"RuleName"
HeaderText
=
"Rule Name"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblRuleName"
runat
=
"server"
Text='<%# Item.RuleName %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Version"
HeaderText
=
"Version"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblVersion"
runat
=
"server"
Text='<%# Item.Version %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"NetworkId"
HeaderText
=
"Network Id"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblNetworkId"
runat
=
"server"
Text='<%# Item.NetworkId %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"OperatorId"
HeaderText
=
"Operator Id"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblOperatorId"
runat
=
"server"
Text='<%# Item.OperatorId %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"Justification"
HeaderText
=
"Justification"
>
<
ItemTemplate
>
<
asp:Label
ID
=
"lblJustification"
runat
=
"server"
Text='<%# Item.Justification %>'></
asp:Label
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
<
EditFormSettings
EditFormType
=
"Template"
>
<
FormStyle
/>
<
FormTemplate
>
<
div
class
=
"form-horizontal"
style
=
"margin-top: 15px;"
>
<%--Category--%>
<
div
class
=
"form-group"
>
<
label
for
=
"radDropDownCategory"
class
=
"col-md-2 control-label"
>Category <
em
class
=
"requiredIndicator"
>*</
em
></
label
>
<
div
class
=
"col-md-5"
>
<
telerik:RadDropDownList
runat
=
"server"
ID
=
"radDropDownCategory"
DataTextField
=
"TextDescription"
DataValueField
=
"Value"
RenderMode
=
"Lightweight"
SelectMethod
=
"GetCategories"
SelectedValue='<%# BindItem.Category %>'>
</
telerik:RadDropDownList
>
</
div
>
</
div
>
<%--Rule Name--%>
<
div
class
=
"form-group"
>
<
label
for
=
"txtRuleName"
class
=
"col-md-2 control-label"
>Rule Name <
em
class
=
"requiredIndicator"
>*</
em
></
label
>
<
div
class
=
"col-md-5"
>
<
asp:TextBox
ID
=
"txtRuleName"
runat
=
"server"
ClientIDMode
=
"Static"
Text='<%# BindItem.RuleName %>'
MaxLength="100"></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rfvRuleName"
runat
=
"server"
ClientIDMode
=
"Static"
ControlToValidate
=
"txtRuleName"
ErrorMessage
=
"Rule Name is Required"
ValidationGroup
=
"RuleExemptionGroup"
CssClass
=
"text-error"
Display
=
"Dynamic"
>
</
asp:RequiredFieldValidator
>
</
div
>
</
div
>
<%--Version--%>
<
div
class
=
"form-group"
>
<
label
for
=
"txtVersion"
class
=
"col-md-2 control-label"
>Version <
em
class
=
"requiredIndicator"
>*</
em
></
label
>
<
div
class
=
"col-md-3"
>
<
asp:TextBox
ID
=
"txtVersion"
runat
=
"server"
ClientIDMode
=
"Static"
Text='<%# BindItem.Version %>'
MaxLength="32"></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rfvVersion"
runat
=
"server"
ClientIDMode
=
"Static"
ControlToValidate
=
"txtVersion"
ErrorMessage
=
"Version is Required"
ValidationGroup
=
"RuleExemptionGroup"
CssClass
=
"text-error"
Display
=
"Dynamic"
>
</
asp:RequiredFieldValidator
>
</
div
>
</
div
>
<%--Network Id--%>
<
div
class
=
"form-group"
>
<
label
for
=
"txtNetworkId"
class
=
"col-md-2 control-label"
>Network Id</
label
>
<
div
class
=
"col-md-3"
>
<
asp:TextBox
ID
=
"txtNetworkId"
runat
=
"server"
ClientIDMode
=
"Static"
Text='<%# BindItem.NetworkId %>'
MaxLength="32"></
asp:TextBox
>
</
div
>
</
div
>
<%--Operator Id--%>
<
div
class
=
"form-group"
>
<
label
for
=
"txtOperatorId"
class
=
"col-md-2 control-label"
>Operator Id</
label
>
<
div
class
=
"col-md-3"
>
<
asp:TextBox
ID
=
"txtOperatorId"
runat
=
"server"
ClientIDMode
=
"Static"
Text='<%# BindItem.OperatorId %>'
MaxLength="32"></
asp:TextBox
>
</
div
>
</
div
>
<%--Justification--%>
<
div
class
=
"form-group"
>
<
label
for
=
"txtJustification"
class
=
"col-md-2 control-label"
>Justification <
em
class
=
"requiredIndicator"
>*</
em
></
label
>
<
div
class
=
"col-md-5"
>
<
asp:TextBox
ID
=
"txtJustification"
runat
=
"server"
ClientIDMode
=
"Static"
Text='<%# BindItem.Justification %>'
MaxLength="5000" TextMode="MultiLine" Rows="4"></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rfvJustification"
runat
=
"server"
ClientIDMode
=
"Static"
ControlToValidate
=
"txtJustification"
ErrorMessage
=
"Justification is Required"
ValidationGroup
=
"RuleExemptionGroup"
CssClass
=
"text-error"
Display
=
"Dynamic"
>
</
asp:RequiredFieldValidator
>
</
div
>
</
div
>
</
div
>
<
div
class
=
"form-horizontal"
style
=
"margin-top: 15px;"
>
<%--Form Buttons--%>
<
div
class
=
"form-group"
>
<
label
class
=
"col-md-2 control-label"
></
label
>
<
div
class
=
"col-md-6"
>
<
asp:Button
ID
=
"btnSave"
runat
=
"server"
Text
=
"Save"
CssClass
=
"button button-blue btn-md"
CommandName
=
"PerformInsert"
CausesValidation
=
"true"
Visible
=
"false"
ValidationGroup
=
"RuleExemptionGroup"
/>
<
asp:Button
ID
=
"btnUpdate"
runat
=
"server"
Text
=
"Update"
CssClass
=
"button button-blue btn-md"
CommandName
=
"Update"
CausesValidation
=
"true"
Visible
=
"false"
ValidationGroup
=
"RuleExemptionGroup"
/>
<
asp:Button
ID
=
"btnCancel"
runat
=
"server"
Text
=
"Cancel"
CssClass
=
"button button-orange btn-md"
CommandName
=
"Cancel"
CausesValidation
=
"false"
/>
</
div
>
</
div
>
</
div
>
</
FormTemplate
>
</
EditFormSettings
>
</
MasterTableView
>
</
telerik:RadGrid
>
Code behind:
public
void
AddRuleExemption()
{
var item =
new
RuleExemptions();
var context =
new
DomainContext();
var domainObject =
new
RuleExemptions(context);
TryUpdateModel(item);
var add = domainObject.AddRuleExemption(item);
if
(!add.IsOperationSuccessful)
{
pnlErrorMessage.Visible =
true
;
lblErrorMessage.Text = add.OperationReturnMessage;
// I WANT TO KEEP THE EDITOR OPEN HERE...
}
else
{
lblErrorMessage.Text =
"Operation Successful"
;
}
}
How can I keep the editor open the add operation was not successful? (Note the line // I WANT TO KEEP THE EDITOR OPEN HERE... above).
Please note that I am using Model Binding in this instance.
Thanks