我已經將mvc3項目升級到mvc4項目,並且已將目標框架從.NET 4.0更改爲.NET 4.5(我不知道是否重要) 。WebGrid幫助器分頁不能用於.NET 4.5 MVC 4
現在,我到處都使用webgrid幫手,分頁完全破碎。 事實上,更新請求被髮送4次,並且id爲「displayClient」的元素被完全從html文檔中刪除。
這是我的源代碼的幾行:在的WebGrid
@{
var grid = new WebGrid(canPage: true, canSort: true, ajaxUpdateCallback: "UpdateWebGridClient", ajaxUpdateContainerId: "displayClient", rowsPerPage: Model.RowPerPageClientId);
grid.Bind(Model.ClientList, rowCount: Model.ClientNumber, autoSortAndPage: false);
@grid.GetHtml(
htmlAttributes: new { id = "grid", @class = "clientTable" },
rowStyle: "odd",
alternatingRowStyle: "even",
footerStyle: "footerWebGrid",
mode: WebGridPagerModes.All,
numericLinksCount: 10,
columns: grid.Columns(
grid.Column("Id", SUResources.Admin.ClientRef, style: "ref"),
grid.Column("FullName", SUResources.Admin.ClientFullName, style: "name"),
grid.Column("Town", SUResources.Admin.ClientTown, style: "town"),
grid.Column("Country", SUResources.Admin.ClientCountry, style: "country"),
grid.Column("Email", SUResources.Admin.ClientEmail, style: "email"),
grid.Column("PurchasedPicture", SUResources.Admin.ClientPurchasedPicture, style: "purchasedPicture"),
grid.Column("Ca", SUResources.Admin.ClientRevenue, style: "ca"),
grid.Column(
style: "first-icon icons",
format: (item) => Ajax.ActionLink(
" ",
"ClientInformation",
new { clientId = item.Id },
new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId = "showClientInformation",
InsertionMode = InsertionMode.Replace
},
new
{
@class = "record"
}
)
),
grid.Column(
style: "icons",
format:
@<text>
@Html.ActionLink(" ", "Index", "SendMail", new { CustomerId = item.Id }, new { @class = "green-mail" })
</text>
),
grid.Column(
style: "icons",
format:
@<text>
@if (item.StatusId == (short)Shootus.Domain.EnumTypes.CustomerState.Active)
{
<a onclick="ChangeCustomerStatus(this);" data-customer-id="@item.Id"> <img alt="" title="@SUResources.Admin.ClientEditionActiveUser" src="/Areas/Admin/Content/Images/Icons/ico-client-active-account.png"/></a>
}
else
{
string CustomerCurrentStatus = SUResources.Admin.ClientEditionBannedUser;
CustomerCurrentStatus = (item.StatusId == (short)Shootus.Domain.EnumTypes.CustomerState.NotValidated) ? SUResources.Admin.ClientEditionEmailNotValidatedUser : CustomerCurrentStatus;
CustomerCurrentStatus = (item.StatusId == (short)Shootus.Domain.EnumTypes.CustomerState.TurnedOff) ? SUResources.Admin.ClientEditionUnactiveUser : CustomerCurrentStatus;
<a onclick="ChangeCustomerStatus(this);" data-photographer-id="@item.Id"> <img alt="" title="@CustomerCurrentStatus" src="/Areas/Admin/Content/Images/Icons/ico-client-inactive-account.png"/></a>
}
</text>
),
grid.Column(
style: "icons",
format: @<text>
@Html.ActionLink(" ", "Delete", new { Id = item.Id }, new { @class = "delete" })
</text>
)
)
);
}
<div class="dot-line">
</div>
<div class="pager client-line-pager">
@grid.Pager()
</div>
默認尋呼機隱藏的CSS屬性顯示。
我在生成的HTML看到有像數據swhgajax,放在桌子上,對尋呼機生成的代碼數據swhgcallback一些新的屬性:數據swhgcontainer,數據swhglnk,...
我使用jQuery.ajaxPrefilter處理頁面中外部表單的一些額外數據。
有沒有人有同樣的問題,他解決了嗎?關於這個問題的起源的想法?
感謝您抽出時間來閱讀這篇文章,我希望有人能幫幫我:-(
我已經找到了原因html元素正在閱讀的JavaScript代碼爲之後的WebGrid清除。這是因爲updateContainerId必須是服務器爲ajax請求返回的內容元素的內容標識。但是,有相同的更新請求的3/4,我仍然在尋找這種行爲的原因: - / –