C# 扩展HTML网格,以便在HTML网格的末尾添加div(MVC Contrib)
我在网上搜索了一下语法或指南,但没有成功 我将感谢任何帮助 我已经在一个视图中实现了一个网格,我没有使用网格视图的分页,而是尝试在网格的末尾实现一个按钮“查看更多”,将更多的数据加载到网格视图中 参见代码C# 扩展HTML网格,以便在HTML网格的末尾添加div(MVC Contrib),c#,asp.net-mvc-4,mvcgrid,htmlextensions,C#,Asp.net Mvc 4,Mvcgrid,Htmlextensions,我在网上搜索了一下语法或指南,但没有成功 我将感谢任何帮助 我已经在一个视图中实现了一个网格,我没有使用网格视图的分页,而是尝试在网格的末尾实现一个按钮“查看更多”,将更多的数据加载到网格视图中 参见代码 @Html.Grid(Model.Orders).Columns(columns => { columns.For(c => @Html.AddInstitudeRetangle(c.User.Institute.InstitudeColor
@Html.Grid(Model.Orders).Columns(columns =>
{
columns.For(c => @Html.AddInstitudeRetangle(c.User.Institute.InstitudeColor, c.User.Institute.InstituteName)).Named("");
columns.For(c => @Html.CheckBox(c.OrderID.ToString(), false, new { @ID = "cb-" + c.OrderID.ToString(), @Name = "cb-" + c.OrderID.ToString() })).Header("<th><input type=\"checkbox\" id=\"chkHeader\" /></th>");
columns.For(c => @Ajax.LinkForBootstrapModalNo("OrderDetails", "OrdersManagement", c.OrderID.ToString(), new { OrderID = c.OrderID }, new { id = "OrderID" }).LoadingPanel("Please Wait Loading...").ToMVCHtmlString()).Named(OrdersManagementStrings.OrderID);
columns.For(c => @Html.GetOrderTypeIcon(c.OrderTypeStatus, c.OrderTypeStatus.GetDescription())).Named(OrdersManagementStrings.OrderType);
columns.For(c => String.Format("{0:dd/MM/yyyy hh:mm}", c.CreationDate)).Named(OrdersManagementStrings.OrderDate);
columns.For(c => String.Format("{0} {1}", c.User.FirstName, c.User.LastName)).Named(OrdersManagementStrings.CustomerName);
columns.For(c => c.User.Institute.InstituteName).Named(OrdersManagementStrings.AffiliateName);
columns.For(c => c.TotalCost).Named(OrdersManagementStrings.TotalCost);
columns.For(c => c.ShippingTypeEnum.GetDescription()).Named(OrdersManagementStrings.ShippingType);
columns.For(c => c.Address.FullAddress).Named(OrdersManagementStrings.Address);
columns.For(c => c.OrderStatusEnum.GetDescription()).Named(OrdersManagementStrings.OrderStatus);
}).Attributes(@class => "table table-hover table-responsive table-condensed", @id => "ordersTable")
<div id="scroll" data-itemsperpage="50" data-spy="scroll">Load More</div
数字50表示每页的行数在查看源代码后,我认为将
HtmlTableGridRenderer
扩展为ScrollingHtmlTableGridRenderer
并使用
@Html.Grid(Model.Orders)
.RenderUsing(new ScrollingHtmlTableGridRenderer(50))
...
然后在ScrollingTMLTableGridRenderer
overrideRenderGridEnd
中添加额外的DIV
public class ScrollingHtmlTableGridRenderer<T> : HtmlTableGridRenderer<T>
where T : class
{
private readonly int _itemsPerPage;
public ScrollingHtmlTableGridRenderer(int itemsPerPage)
{
_itemsPerPage = itemsPerPage;
}
protected override void RenderGridEnd()
{
base.RenderGridEnd();
RenderText("<div id=\"scroll\" data-itemsperpage=\"" + _itemsPerPage + \"" data-spy=\"scroll\">Load More</div>");
}
}
公共类ScrollingHtmlTableGridRenderer:HtmlTableGridRenderer
T:在哪里上课
{
私有只读int_itemsPerPage;
公共ScrollingHtmlTableGridRenderer(int itemsPerPage)
{
_itemsPerPage=itemsPerPage;
}
受保护的覆盖无效RenderGridEnd()
{
base.RenderGridEnd();
RenderText(“加载更多”);
}
}
作为一个扩展,您可以创建一个新的渲染器,并将所有数据从底层网格模型传播到它,但是
grid
类似乎是通过将渲染器替换为一个处理您自定义需求的渲染器来扩展的,而不是通过igridoptionmodel
上的扩展,这管用!非常感谢。你能帮我找到一篇文章或是一些重要的作品,在那里我可以阅读并了解更多关于这方面的信息吗?特别是ScrollingHtmlTableGridRenderer:HtmlTableGridRenderer,其中T:class@silagy-资料来源可在
public class ScrollingHtmlTableGridRenderer<T> : HtmlTableGridRenderer<T>
where T : class
{
private readonly int _itemsPerPage;
public ScrollingHtmlTableGridRenderer(int itemsPerPage)
{
_itemsPerPage = itemsPerPage;
}
protected override void RenderGridEnd()
{
base.RenderGridEnd();
RenderText("<div id=\"scroll\" data-itemsperpage=\"" + _itemsPerPage + \"" data-spy=\"scroll\">Load More</div>");
}
}