Mogę łatwo podłączyć webgrid i dodać do niego ajax przy użyciu domyślnych ustawień. Ale jedną rzeczą, z którą walczyłem, aby dowiedzieć się, jest to, jak dodać wskaźnik ładowania, gdy siatka sortuje lub stronicowanie przez ajax.Pokaż wskaźnik ładowania Ajax podczas sortowania lub stronicowania ASP.net MVC Webgrid
Istnieje wbudowana funkcja wywołania zwrotnego, która doskonale wyłącza wskaźnik ładowania ajax, ale jak mogę go łatwo włączyć?
Poniżej znajduje się kod, który mam obecnie na moim webgrid.
@{
var grid = new WebGrid(rowsPerPage: Model.CountPerPage, ajaxUpdateContainerId: "GridArea");
grid.Bind(Model.Users,
autoSortAndPage: false,
rowCount: Model.TotalCount
);
grid.Pager(WebGridPagerModes.All);
}
<div id="GridArea">
@grid.GetHtml(htmlAttributes: new {id ="UserGrid"},
columns: new [] {
grid.Column("ID", canSort: false),
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("FullName", canSort: false)
}
)
</div>
Próbowałem użyć następujących, ale żaden z nich nie zadziałał.
<script>
$(function() {
$("#UserGrid").live("ajaxStart", function() {
alert("start");
});
});
</script>
Ten działa po raz pierwszy, ale nie będzie działać po siatka robi swój pierwszy ajax odświeżenia.
<script>
$(function() {
$('#UserGrid').ajaxStart(function() {
alert("start");
});
});
</script>
Jak mogę to zrobić, jeśli chcę mieć inne elementy strony obsługiwane przez ajax i muszę odróżnić połączenie bezpośrednio od Webgrid? –
Musisz ponownie powiązać obsługę zdarzeń ajax z webgrid za każdym razem, gdy DOM webgrid zostanie zastąpiony przez wywołanie ajax. Tak więc, bez względu na to, co robisz, potrzebujesz jakiejś globalnej obsługi ajaxowej, w której możesz ponownie powiązać wszystkie z nich. Jeśli chcesz rozróżnić połączenie, możesz użyć ukrytych pól, aby śledzić kontrolkę wywołującą wywołanie ajax. – Tariqulazam