Hallo alle,Ajax Anruf funktioniert nur auf der ersten Seite von WebGrid
Ich habe ein WebGrid, das Seitennummerierung hat. Eine Spalte zeigt ein Symbol an, das angeklickt werden kann und einen Ajax-Aufruf auslöst. Der Ajax-Aufruf funktioniert auf der ersten Seite des Webgrids, aber auf den nächsten Seiten scheint er nicht zu funktionieren. Ich denke nicht, dass es sogar den Ajax-Aufruf trifft, das Display würde auch auf den oberen Rand der Seite springen. Kann mir jemand sagen, was ich falsch mache oder wie ich es auch auf den anderen Seiten des Webgrids funktionieren lassen kann?
var Grid = new WebGrid(canPage: true, canSort: false, rowsPerPage: 25, ajaxUpdateContainerId: "gridContent");
Grid.Bind(Model.DataList);
Grid.Pager(WebGridPagerModes.NextPrevious);
var gridColumns = new List<WebGridColumn>();
gridColumns.Add(PaymentGrid.Column(columnName: "WavFile", header: " ", format:@<text>
@if (item.WavFile != null && item.WavFile != "")
{ <a href="#" id="audiobtn" class="audiobtn"><img src="~/Content/audio.png"
title="Download" alt="@item.WavFile" /></a> }
else
{ @Html.Raw("<img src=\"/Content/audiooff.png\" />") }</text>));
gridColumns.Add(Grid.Column(columnName: "EmployeeID", header: "EmpID"));
gridColumns.Add(Grid.Column(columnName: "LastName", header: "Last", canSort:
true));
gridColumns.Add(Grid.Column(columnName: "FirstName", header: "First", canSort: true));
<div id="gridContent">
@Grid.GetHtml(
tableStyle: "table table-striped table-hover",
headerStyle: "",
footerStyle: "",
alternatingRowStyle: "",
rowStyle: "",
mode: WebGridPagerModes.All,
columns: Grid.Columns(gridColumns.ToArray())
)
</div>
<script type="text/javascript">
$(document).ready(function() {
$(".audiobtn").click(function (e) {
$.ajax({
type: "POST",
url: "/EmployeeInfo/VoiceAuthorization",
data: { audio: $(this).find('img').attr('alt') },
async: false,
cache: false,
success: function (response) {
if (e.button == 0) {
$("#ContextMenu").css('left', e.pageX + 5);
$("#ContextMenu").css('top', e.pageY + 5);
$("#ContextMenu").fadeIn(100);
}
},
error: function (error) {
alert('Invalid wav file');
console.log(error);
}
});
return false;
});
$("#ContextMenu").click(function() {
$("#ContextMenu").fadeOut(80);
});
$(document).click(function (e) {
if (e.target.id != 'audiobtn' && !$('#audiobtn').find(e.target).length) {
$("#ContextMenu").hide();
}
});
return false;
});
});
Danke
Ich versuche, die gleiche Sache zu implementieren, aber ich will die WebGrid Reihe machen anklickbar statt einer Taste. Dies funktioniert mit einer Schaltfläche, funktioniert aber nicht in einer WebGrid-Zeile. Es funktioniert nur auf der ersten Seite, aber nicht auf anderen Seiten. – Newit