Grid :-
.Columns(columns =>
{
columns.Bound(x => x.Role).Title("<b>Project OBS Role</b>").Width("30%").Filterable(true).
HeaderHtmlAttributes(new { style="text-align:center;"}).HeaderHtmlAttributes(new { style = "text-align:center;vertical-align:middle;" });
columns.Bound(x => x.UserId).Title("<b>Approver</b>").Width("40%").EditorTemplateName("GridGroupPeoplePicker").
====> EditorViewData(new { SecurityGroup = "#=SecurityGroup#" }).Filterable(true).HeaderHtmlAttributes(new { style = "text-align:center;vertical- align:middle;" }).HtmlAttributes(new { style = "text-align:left;" });
columns.Bound(x => x.Delay).Title("<b>Delay<b>").Width("20%").Filterable(true).
HeaderHtmlAttributes(new { style = "text-align:center;vertical-align:middle;" }).HtmlAttributes(new { style = "text-align:left;" });
columns.Command(command => { command.Edit().Text(" ").CancelText(" ").UpdateText(" ");}).Width("10%").
HtmlAttributes(new { style = "text-align:center;" });
})
Editor Template :-
@model string@{
string Groups = ViewData["SecurityGroup"] as string;
}
<input type="hidden" id="hdn@(Html.IdForModel())" data-bind="value: @(Html.IdForModel())" disabled="disabled" />
<input type="hidden" id="GroupName_@(Html.IdForModel())" data-bind="value: @(Groups)" disabled="disabled" />
<script>
function GetGroups_@(Html.IdForModel())(e) {
debugger;
var filterInput = $('#hdn@(Html.IdForModel())').val();
var Groups = $('#GroupName_@(Html.IdForModel())').val();
return { PickerFilter: filterInput, GroupNames: '@Groups', IsUsersByGroup: 'false' };
}
</script>
@(Html.Kendo().DropDownListFor(m => m)
.DataValueField("Value")
.DataTextField("Text")
.Filter(FilterType.Contains)
.MinLength(3)
.AutoBind(false)
.DataSource(ds =>
{
ds.ServerFiltering(true).Read(r => r.Action("GetUserByGroups", "Common").Data("GetGroups_" + Html.IdForModel()));
})
)