我有一种感觉,这是一个我错过的简单问题,但几个小时后,我放弃了,决定在这里发帖。
我正在尝试实现一个通用的分页部分视图,我可以在整个站点中使用它。因此,分页模型采用一个函数,该函数将绑定到稍后用作回调的分页控件。请参阅下面的UpdateFunction。
ViewModels.Shared._PaginationPartialViewModel pagination =
new ViewModels.Shared._PaginationPartialViewModel()
{
CurrentPage = Filter.Page,
ItemFrom = GenericHelpers.Paging_GetItemFrom(10, Filter.Page, TotalItems),
ItemTo = GenericHelpers.Paging_GetItemTo(10, Filter.Page, TotalItems),
TotalItems = TotalItems,
TableClass = Filter.Table,
TotalPages = (int)Math.Ceiling((double) TotalItems / 10),
UpdateFunction = "getTransfers('" + Filter.Table + "')"
};现在,当模型绑定到视图时,此函数将作为对javascript单击事件paginationClick()的回调传入,如下所示...
<a href="#" class="stock-pagination__action stock-pagination__action_state_active @(Model.TableClass + "_Page")" data-page="@Model.CurrentPage" onclick="paginationClick(this, @(Model.CurrentPage), @Model.UpdateFunction); return false;">@Model.CurrentPage</a>paginationClick()函数会触发,但在检查开发控制台时,回调方法似乎会首先触发。下面是paginationClick()方法...(我知道页面参数目前没有被使用!)
function paginationClick(control, page, callback)
{
if (!$(control).hasClass('stock-pagination__action_state_active')) {
$(control).parent().find('a').each(function () {
$(this).removeClass('stock-pagination__action_state_active');
});
$(control).addClass('stock-pagination__action_state_active');
callback;
} }
如果任何人能提供一双额外的眼睛,我将不胜感激!
发布于 2017-08-25 19:22:59
我找到了一个解决方法,不是将getTransfers作为回调传递,而是将其作为数据属性附加到控件中,然后使用eval在正确的时间执行,如下所示:
data-callback="@Model.UpdateFunction"然后
function paginationClick(control, page)
{
if (!$(control).hasClass('stock-pagination__action_state_active')) {
var arr_Controls = [];
$(control).parent().find('a').each(function () {
$(this).removeClass('stock-pagination__action_state_active');
arr_Controls.push($(this));
});
$(control).addClass('stock-pagination__action_state_active');
eval($(control).attr("data-callback"));
//callback;
} }
这不是我想要的解决方案,但它是有效的。如果任何人有任何想法如何让它作为一个回调,请让我知道。
https://stackoverflow.com/questions/45879847
复制相似问题