@{
var testChoiceList = new List<object>
{
new { value = 1, text = "One" },
new { value = 2, text = "Two" },
new { value = 3, text = "Three" },
};
var jsonTestChoiceList = JsonConvert.SerializeObject(testChoiceList);
var testGridData = new List<object>
{
new { Id = 1, Name = "Lorem" , PriceId = 2 },
new { Id = 2, Name = "Ipsum" , PriceId = 1 },
new { Id = 2, Name = "Something else" , PriceId = 3 },
};
}
<script type="text/template" id="testTemplate">
<div class="panel panel-default">
<div class="panel-body">
<input id="Name" name="Name" value="{{:Name}}" class="e-field e-ejinputtext valid"
style="text-align: right; width: 260px; height: 28px" />
<input type="text" id="PriceId" name="PriceId" />
</div>
</div>
</script>
<script type="text/javascript">
function TestGridComplete(args) {
if (args.requestType == "beginedit" || args.requestType == "add") {
var sellers = JSON.parse('@Html.Raw(jsonTestChoiceList)');
var selectedValue = args.row != null
? args.row.children().eq(2).text()// 15 is a seller column number.
: null;
var sellerCombo = $('#PriceId')
.ejDropDownList({
dataSource: sellers,
fields: { value: "value", text: "text" },
cascadeTo: 'PriceId',
width: "100%",
})
.data("ejDropDownList");
if (sellerCombo != null && selectedValue != null) {
sellerCombo.selectItemByValue(selectedValue);
}
}
}
</script>
@(Html.EJ().Grid<object>("TestGrid")
.Datasource(ds => ds.Json(testGridData)
.UpdateURL("/FakeUpdate")
.RemoveURL("/FakeDelete")
.InsertURL("/FakeInsert")
.Adaptor(AdaptorType.RemoteSaveAdaptor))
.AllowSorting() /*Sorting Enabled*/
.EditSettings(edit =>
{
edit.AllowAdding()
.AllowDeleting()
.AllowEditing()
.EditMode(EditMode.DialogTemplate)
.DialogEditorTemplateID("#testTemplate");
})
.ToolbarSettings(toolbar =>
{
toolbar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.Add);
items.AddTool(ToolBarItems.Edit);
items.AddTool(ToolBarItems.Delete);
items.AddTool(ToolBarItems.Update);
items.AddTool(ToolBarItems.Cancel);
});
})
.Columns(col =>
{
col.Field("Id").HeaderText("").IsIdentity(true).IsPrimaryKey(true).Visible(true).Width(75).Add();
col.Field("Name").HeaderText("Name").Width(80).Visible(true).Add();
col.Field("PriceId").HeaderText("Price Type").Visible(true).Width(80).Add();
})
.ClientSideEvents(eve => { eve.ActionComplete("TestGridComplete"); }))