2012-11-13 14 views
9

Próbuję utworzyć niestandardowy przycisk polecenia, aby uruchomić niestandardową funkcję usuwania. Muszę przekazać identyfikator mojego modelu do mojej niestandardowej funkcji usuwania. Zauważysz, że próbuję przekazać statyczne "5" jako test, ale chciałbym podać identyfikator tego wiersza.Kendo MVC Grid: Tworzenie niestandardowego przycisku polecenia i przekazywanie parametrów

Każda pomoc zostanie bardzo doceniona.

@(Html.Kendo().Grid(Model) 
.Name("Grid") 
.Columns(columns => 
{ 
    columns.Bound(p => p.Name).Width(240); 
    columns.Bound(p => p.City).Width(170); 
    columns.Bound(p => p.State).Width(170); 
    columns.Command(command => 
    { 
     command.Edit(); 
     command.Custom("Delete").Click("PropertyPage.DeleteProperty").HtmlAttributes(new { @Id = 5 }); 
     }).Width(166); 
    }) 
    .Scrollable() 
    .Editable(editable => editable.Mode(GridEditMode.InLine)) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Model(model => model.Id(p => p.Id)) 
     .Read(read => read.Action("PropertyRead", "Property")) 
     .Update(update => update.Action("Update", "Property")) 
     .Destroy(update => update.Action("Delete", "Property")) 
)) 

Odpowiedz

10

ten powinien wysyłać żadnych danych określonych klawiszy:

command.Custom("Delete").SendDataKeys(true).Click("PropertyPage.DeleteProperty"); 

DataKeys podano w sekcji DataSource:

.DataSource(dataSource => dataSource 
    .Ajax() 
    .Model(model => model.Id(p => p.Id)) // THIS IS YOUR DATA KEY 
    .Read(read => read.Action("PropertyRead", "Property")) 
    .Update(update => update.Action("Update", "Property")) 
    .Destroy(update => update.Action("Delete", "Property")) 

Znalazłem też stronę na miejscu w Kendo. Pomogło mi to, gdy miałem podobny problem: http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/migration/widgets/grid#editing

Mam nadzieję, że to pomoże!

+2

Jak mam uzyskać dostęp do tego zestawu danych w mojej funkcji DeleteProperty? funkcja DeleteProperty (e) ... Próbowałem alert (e) i wszystko, co widzę, to obiekt. Muszę zdobyć Id. – Mithrilhall

+7

Mój błąd. Nie zdawałem sobie sprawy, że to wywołanie funkcji javascript. Przepraszam! Mając to na uwadze, zmień składnię komend niestandardowych na: command.Custom ("Delete") .Kliknij ("PropertyPage.DeleteProperty"); Twoja funkcja powinna wyglądać następująco: funkcja DeleteProperty (e) {// Lub jakakolwiek jest twoja nazwa funkcji \t var dataItem = this.dataItem ($ (e.currentTarget) .closest ("tr")); \t var id = dataItem.Id; \t alert (identyfikator); } –

Powiązane problemy