İki kademede bir ana-detay Telerik MVC Grid kullanıyorum.Telerik MVC Grid Master Ayrıntısı Basamaklı Düşmeler
- İlk düzey, Müşteriler ve bazı yanlış veriler için bir açılır menü içerir.
- İkinci seviye, müşteriye ilk seviyede ve bazı yanlış verilerle bağlantılı olan Arabalar açılır listesini içerir.
Şimdi, otomobillerin ve istemcilerin açılır listelerini göstermek için bir yabancı anahtar sütunu kullanıyorum. İkinci açılır menü müşterinin ilk seviyesinde nasıl filtrelenebilir?
Kodu:
@(Html.Telerik().Grid<Models.ClientsModel>()
.Name("Grid")
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.ImageAndText))
.DataKeys(keys => keys.Add(c => c.ClientLineID))
.Columns(columns =>
{
columns.ForeignKey(o => o.ClientID, (System.Collections.IEnumerable)ViewBag.Client, "ClientID", "Name")
.Width(330)
.Title("Client");
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.ImageAndText);
commands.Delete().ButtonType(GridButtonType.ImageAndText);
}).Width(250);
})
.DetailView(car => car.ClientTemplate(
Html.Telerik().Grid<Delta.Models.CarModel>()
.Name("Car_<#= ClientID #>")
.DataKeys(keys => keys.Add(c => c.LineID))
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.ImageAndText))
.DataBinding(dataBinding =>
{
dataBinding.Ajax()
.Select("_CarLineIndex", "Client", new { id = "<#= ClientID #>" })
.Insert("_CarLineCreate", "Client", new { id = "<#= ClientID #>" })
.Update("_CarLineUpdate", "Client")
.Delete("_CarLineDelete", "Client");
})
.Columns(columns =>
{
columns.ForeignKey(o => o.CarID, (System.Collections.IEnumerable)ViewBag.Cars,
"CarID", "No")
.Width(500)
.Title("Car");
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.ImageAndText);
commands.Delete().ButtonType(GridButtonType.ImageAndText);
}).Width(200);
})
.Editable(editing => editing => editing.Mode(GridEditMode.InLine))
.Scrollable(c => c.Height("auto"))
.Resizable(resizing => resizing.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.KeyboardNavigation()
.Footer(false)
.ToHtmlString()
))
.DataBinding(dataBinding =>
{
dataBinding.Ajax()
.Select("_ClientIndex", "Client")
.Insert("_ClientCreate", "Client")
.Update("_ClientUpdate", "Client")
.Delete("_ClientDelete", "Client");
})
.Scrollable(c => c.Height("auto"))
.Editable(editing => editing.Mode(GridEditMode.InLine))
.Pageable(o => o.PageSize(50))
.Filterable()
.KeyboardNavigation()
.Groupable())
Ben kodu OnDetailViewExpand
olaya bazı javascript dahil olabilir, ama dışarı neyi bilemiyorum ki düşünüyorum. Şu an sahip olduğum tek çözüm, ızgarayı ayrı görünümlere bölmek ve burada kasetleme combobox'ları oluşturmak.
Aynı sorun http://stackoverflow.com/questions/8987064/how-can-i-set-route -value-in-client-side-for-telerik-combobox –