WebGridに簡単に接続し、デフォルト設定を使用してajaxを追加することができます。しかし、私が把握することに苦労してきたことの1つは、グリッドがajax経由で並べ替えやページングを行っているときにローディングインジケータを追加する方法です。ASP.net MVC Webgrid
コールバック関数が組み込まれています。これはajaxローディングインジケータをオフにするのに最適ですが、どうすれば簡単にオンにすることができますか?
以下は現在私の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>
私は以下を使用しようとしましたが、どちらも機能しませんでした。
<script>
$(function() {
$("#UserGrid").live("ajaxStart", function() {
alert("start");
});
});
</script>
これは初めて動作しますが、グリッドの最初のAjaxリフレッシュ後は動作しません。
<script>
$(function() {
$('#UserGrid').ajaxStart(function() {
alert("start");
});
});
</script>
ページの他のajax駆動部分が必要な場合、私はWebgridから直接呼び出しを区別する必要がある場合、これをどのように達成できますか? –
webgridのDOMがajax呼び出しに置き換えられるたびに、webgridのajaxイベントハンドラを再バインドする必要があります。ですから、あなたが何をしていても、グローバルなAjaxハンドラが必要です。コールを区別したい場合は、隠しフィールドを使用してajax呼び出しを発生させるコントロールを追跡することができます。 – Tariqulazam