or
@(Html.Kendo().Grid<Entity>(Model)
.Name(
"valueGrid"
)
.ToolBar(commands => commands.Create().Text(
"Add new value"
))
.Columns(columns =>
{
columns.Bound(c => c.DOMAINID).Visible(
false
);
columns.Bound(c => c.CODE);
columns.Bound(c => c.VALUE);
columns.Command(command => { command.Edit().UpdateText(
"Save"
); command.Destroy().Text(
"Delete"
); });
})
//.Events(e => e.SaveChanges("OnSaveChanges"))
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
//.Events(e => e.Error("OnDatasourceError"))
.ServerOperation(
false
)
.Model(m => m.Id(v => v.CODE))
.Update(update => update.Action(
"UpdateValue"
,
"DomainValue"
))
.Create(create => create.Action(
"CreateValue"
,
"DomainValue"
))
.Destroy(
delete
=>
delete
.Action(
"DeleteValue"
,
"DomainValue"
))
)
)
@(Html.Kendo().Grid<AccountManagement.Business.ViewModels.Areas.DM.RehireDocumentSettingViewModel>(Model.RehireDocuments)
.Name(
"DocumentSettings"
)
.Columns(columns =>
{
columns.Bound(ds => ds.Form)
.ClientTemplate(
"#= data.Form.Description #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].Form.FormID' value='#= data.Form.FormID #' />"
);
columns.Bound(ds => ds.DocumentDateType)
.ClientTemplate(
"#= DocumentDateType.Description #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].DocumentDateType.RehireDocumentDateType' value='#= DocumentDateType.RehireDocumentDateType #' />"
);
columns.Bound(ds => ds.RemoveIfOlderThanDays)
.ClientTemplate(
"#= RemoveIfOlderThanDays #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].RemoveIfOlderThanDays' value='#= RemoveIfOlderThanDays #' />"
);
columns.Command(command => command.Destroy());
}
)
.ToolBar(toolbar =>
{
toolbar.Create().Text(AccountManagement.Resources.AccountManagementResources.AddRehireDocumentSettingButtonText);
})
.Navigatable()
.Sortable()
.Scrollable()
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(
true
)
.ServerOperation(
false
)
.Events(events => events.Error(
"error_handler"
))
.Model(model =>
{
model.Id(ds => ds.Form.FormID);
model.Field(ds => ds.Form).DefaultValue(
ViewData[
"defaultForm"
] as AccountManagement.Business.ViewModels.Areas.DM.FormViewModel);
model.Field(ds => ds.DocumentDateType).DefaultValue(
new
AccountManagement.Business.ViewModels.Areas.DM.RehireDocumentDateTypeViewModel() {
RehireDocumentDateType = AccountManagement.Models.RehireDocumentDateType.DateTypeNotSpecified
}
);
}
)
)
)
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple =
false
, Inherited =
true
)]
public
class
RequiredCountAttribute : ValidationAttribute, IClientValidatable
{
public
const
int
NotRequiredCount = -1;
private
int
minCount;
private
int
maxCount;
public
string
MinErrorMessage {
get
;
set
; }
public
string
MaxErrorMessage {
get
;
set
; }
public
RequiredCountAttribute(
int
minCount,
int
maxCount = NotRequiredCount)
:
base
()
{
this
.minCount = minCount;
this
.maxCount = maxCount;
}
protected
override
ValidationResult IsValid(
object
value, ValidationContext validationContext)
{
if
(value !=
null
)
{
IEnumerable list = (IEnumerable)value;
int
count = 0;
foreach
(
object
o
in
list)
count++;
if
(count < minCount)
{
string
errorMessage = FormatErrorMessage(validationContext.DisplayName);
return
new
ValidationResult(errorMessage);
}
if
(maxCount != NotRequiredCount && count > maxCount)
{
string
errorMessage = FormatErrorMessage(validationContext.DisplayName);
return
new
ValidationResult(errorMessage);
}
}
return
ValidationResult.Success;
}
public
IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule =
new
ModelClientValidationRule();
rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
rule.ValidationType =
"requiredcount"
;
rule.ValidationParameters.Add(
"mincount"
, minCount);
if
(maxCount != NotRequiredCount) rule.ValidationParameters.Add(
"maxcount"
, maxCount);
yield
return
rule;
}
}
(
function
($, kendo) {
$.extend(
true
, kendo.ui.validator, {
rules: {
// custom rules
requiredCount:
function
(input, params) {
//check for the rule attribute
if
(input.filter(
"[data-val-requiredcount]"
).length && input.val()) {
var
minCount = $(input).attr(
'data-val-requiredcount-mincount'
);
var
maxCount = $(input).attr(
'data-val-requiredcount-maxcount'
);
if
(input.val() < minCount)
return
false
;
if
(maxCount !== undefined && input.val() > maxCount)
return
false
;
}
return
true
;
}
},
messages: {
//custom rules messages
requiredCount:
function
(input) {
// return the message text
return
input.attr(
"data-val-requiredcount"
);
}
}
});
})(jQuery, kendo);
@(Html.Kendo().Grid<AccountManagement.Business.ViewModels.Areas.DM.RehireDocumentSettingViewModel>()
.Name(
"DocumentSettings"
)
.Columns(columns =>
{
columns.Bound(ds => ds.Form)
.ClientTemplate(
"#= data.Form.Description #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].Form.FormID' value='#= data.Form.FormID #' />"
);
columns.Bound(ds => ds.DocumentDateType)
.ClientTemplate(
"#= DocumentDateType.Description #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].DocumentDateType.RehireDocumentDateType' value='#= DocumentDateType.RehireDocumentDateType #' />"
);
columns.Bound(ds => ds.RemoveIfOlderThanDays)
.ClientTemplate(
"#= RemoveIfOlderThanDays #"
+
"<input type='hidden' name='DocumentSettings[#= index(data)#].RemoveIfOlderThanDays' value='#= RemoveIfOlderThanDays #' />"
);
columns.Command(command => command.Destroy());
}
)
.ToolBar(toolbar =>
{
toolbar.Create().Text(AccountManagement.Resources.AccountManagementResources.AddRehireDocumentSettingButtonText);
})
.Navigatable()
.Sortable()
.Scrollable()
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(
true
)
.ServerOperation(
false
)
.Events(events => events.Error(
"error_handler"
))
.Model(model =>
{
model.Id(ds => ds.Form.FormID);
model.Field(ds => ds.Form).DefaultValue(
ViewData[
"defaultForm"
] as AccountManagement.Business.ViewModels.Areas.DM.FormViewModel);
model.Field(ds => ds.DocumentDateType).DefaultValue(
new
AccountManagement.Business.ViewModels.Areas.DM.RehireDocumentDateTypeViewModel() {
RehireDocumentDateType = AccountManagement.Models.RehireDocumentDateType.DateTypeNotSpecified
}
);
}
)
.Read(
"RehireDocumentSetting_Read"
,
"RehireSetup"
)
)
)
<
script
type
=
"text/x-kendo-template"
id
=
"vehicletemplate"
>
<
div
>
<
p
>Dummy Placeholder</
p
>
</
div
>
</
script
>
<
div
class
=
"col-md-4"
>
@(Html.Kendo().ListView<
Object
>().Name("VehicleList")
.ClientTemplateId("vehicletemplate")
.TagName("div")
.DataSource(ds => ds
.ServerOperation(false)
.Read(read => read
.Url("/api/vehicles").Type(HttpVerbs.Get)
)
)
)
@(Html.Kendo().DropDownList()
.Name("ddList")
.DataTextField("Registration")
.DataSource(ds => ds
.Read(read => read
.Url("/api/vehicles").Type(HttpVerbs.Get)
)
)
)
</
div
>