HtmlHelper Grid 扩展分页为submit 保存查询条件值

  1. 扩展Grid让他生成的分页用submit提交
    ContractedBlock.gif ExpandedBlockStart.gif Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using MvcContrib.UI.Html.Grid;
    using System.Collections;
    using System.IO;
    using System.Web.Mvc;

    namespace HZMCRM.Extension
    {
        
    public class GridEx<T> : Grid<T> where T : class
        {
            
    public GridEx(IEnumerable<T> items, GridColumnBuilder<T> columns, IDictionary htmlAttributes, TextWriter writer, HttpContextBase context)
                : 
    base(items, columns, htmlAttributes, writer, context)
            {
            }

            
    public GridEx(string viewDataKey, ViewContext viewContext, GridColumnBuilder<T> columns, IDictionary htmlAttributes, TextWriter writer)
                : 
    this(MvcContrib.UI.Html.Grid.Grid<T>.GetDataSourceFromViewData(viewDataKey, viewContext), columns, htmlAttributes, writer, viewContext.HttpContext)
            {
            }

            
    protected override string CreatePageLink(int pageNumber, string text)
            {
                
    string str = this.CreateQueryString(this.Context.Request.QueryString);
                
    string filePath = this.Context.Request.FilePath;
                
    //return string.Format("<a href=\"{0}?{1}={2}{3}\">{4}</a>", new object[] { filePath, pageQueryName(), pageNumber, str, text });
                return string.Format("<a href=\"javascript:window.form1.action='{0}?{1}={2}{3}';window.form1.submit();\">{4}</a>"new object[] { filePath, pageQueryName(), pageNumber, str, text });
            }

            
    private string pageQueryName()
            {
                
    string _pageQueryName = "page";

                
    if (this.HtmlAttributes.Contains("page"))
                {
                    _pageQueryName 
    = this.HtmlAttributes["page"as string;
                    
    this.HtmlAttributes.Remove("page");
                }

                
    return _pageQueryName;
            }
        }
    }
  2. 扩展HtmlHelper让其的Html.Grid方法之一能实例化我们新扩展的类GridEx 
ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcContrib.UI.Html.Grid;
using System.Collections;

namespace HZMCRM.Extension
{
    
public static class GridExEx
    {
        
public static void Grid<T>(this HtmlHelper helper, string viewDataKey, Action<IRootGridColumnBuilder<T>> columns, MyExtention postPageLink) where T : class
        {
            
new GridEx<T>(viewDataKey, helper.ViewContext, CreateColumnBuilder<T>(columns,null), null, helper.ViewContext.HttpContext.Response.Output).Render();
        } 

        
private static GridColumnBuilder<T> CreateColumnBuilder<T>(Action<IRootGridColumnBuilder<T>> columns, Action<IGridSections<T>> sections) where T : class
        {
            GridColumnBuilder
<T> builder = new GridColumnBuilder<T>();
            
if (columns != null)
            {
                columns(builder);
            }
            
if (sections != null)
            {
                sections(builder);
            }
            
return builder;
        }

        
public enum MyExtention
        {
            PageLink
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值