一个自定义的可以分页,排序,扩展显示grid控件

原创 2004年07月09日 14:40:00

第一次写,忘记注解,对不住.

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Xml;

namespace Grid
{

    public class IDArgs : System.EventArgs 
    {  
         private string id;
    
         //Constructor.
         //
         public IDArgs(string Id) 
         {
              this.id =Id;
              
         }
      
         // The NumRings property returns the number of rings
         // that the alarm clock has sounded when the alarm event 
         // is generated.
         //
         public string ID
         {     
              get { return this.id ;}   
         }     
  
    }

    /// 
    /// Summary description for WebCustomControl1.
    /// 
    [DefaultProperty("Text"),
    ToolboxData("<{0}:WebCustomControl1 runat=server>")]
    public class WebCustomControl1 : System.Web.UI.WebControls.WebControl, IPostBackEventHandler
    {

         public string EditUrl
         {
              get
              {
                   if(this.ViewState["EditUrl"]!=null) return (string)this.ViewState["EditUrl"];
                   else return "";
              }
              set
              {
                   this.ViewState["EditUrl"]=value;
              }
         }

         public string ExpandColumn
         {
              get
              {
                   if(this.ViewState["ExpandColumn"]!=null) return (string)this.ViewState["ExpandColumn"];
                   else return "";
              }
              set
              {
                   this.ViewState["ExpandColumn"]=value;
              }
         }

         //set paging

         public int IsPaging
         {
              get
              {
                   if(this.ViewState["IsPaging"]!=null) return (int)this.ViewState["IsPaging"];
                   else return 0;
              }
              set
              {
                   this.ViewState["IsPaging"]=value;
              }
         }

         public int PageCount
         {
              get
              {
                   if(this.ViewState["PageCount"]!=null) return (int)this.ViewState["PageCount"];
                   else return 0;
              }
              set
              {
                   this.ViewState["PageCount"]=value;
              }
         }

         public int CurrentPage
         {
              get
              {
                   if(this.ViewState["CurrentPage"]!=null) return (int)this.ViewState["CurrentPage"];
                   else return 1;
              }
              set
              {
                   this.ViewState["CurrentPage"]=value;
              }
         }

         //set sort
         public int IsSort
         {
              get
              {
                   if(this.ViewState["IsSort"]!=null) return (int)this.ViewState["IsSort"];
                   else return 0;
              }
              set
              {
                   this.ViewState["IsSort"]=value;
              }
         }

         public int sortColumn
         {
              get
              {
                   if(this.ViewState["sortColumn"]!=null) return (int)this.ViewState["sortColumn"];
                   else return -1;
              }
              set
              {
                   this.ViewState["sortColumn"]=value;
              }
         }

         
    
         public string  sortColumnName
         {
              get
              {
                   if(this.ViewState["sortColumnName"]!=null) return (string)this.ViewState["sortColumnName"];
                   else return "";
              }
              set
              {
                   this.ViewState["sortColumnName"]=value;
              }
         }


         public string sortOrder
         {
              get
              {
                   if(this.ViewState["sortOrder"]!=null) return (string)this.ViewState["sortOrder"];
                   else return "ASC";
              }
              set
              {
                   this.ViewState["sortOrder"]=value;
              }
         }
         public DataSet source
         {
              get
              {
                   return (DataSet)this.ViewState["source"];
              }
              set
              {

                   this.ViewState["source"]=value;
              }
         }

         public event EventHandler    Delete;
         public event EventHandler    Refresh;
    

         public void RaisePostDataChangedEvent() 
         {

              // IPostBackDataHandler 协定的一部分。如果曾经从 LoadPostData 方法返回真
              // (表示需要引发更改通知),则被调用。由于
              // 始终返回假,则此方法只是一个空操作。
         }

         //          protected void OnChange(EventArgs e) 
         //          {
         //               Sort(this, e);
         //          }
         public void RaisePostBackEvent(String eventArgument) 
         {
              if (eventArgument.IndexOf("|")>-1) 
              {

                   IDArgs ide=new IDArgs(eventArgument.Substring(eventArgument.IndexOf("|")+1));
                   if (Delete!=null)
                   {
                        Delete(this,ide);

                   }
                   return;
              }
              string     flag="";     
              switch(eventArgument)                    
              {
                   case "first":this.CurrentPage =1;break;
                   case "prev":this.CurrentPage -- ;break;
                   case "next":this.CurrentPage ++ ;break;
                   case "last":this.CurrentPage =this.PageCount;break;
                   case "":break;
                   default:
                   {
                        DataTable dt=source.Tables[0];
                        int lastColumn=sortColumn;
                        for(int i=0;i                             if (eventArgument==dt.Columns[i].ColumnName)
                             {
                                  sortColumn=i;
                                  break;
                             }

                        if (lastColumn==sortColumn) { if (this.sortOrder=="DESC") sortOrder="ASC"; else sortOrder="DESC";}
                        else sortOrder="ASC";
                        sortColumnName=eventArgument;
                        break;
                   }
              }
          
              //               if ( flag=="sort")
              //               {
              //                    if(this.IsSort ==0) 
              //                    {
              //                         return;
              //                    }
              //               }

              if ( Refresh!=null) Refresh(this,EventArgs.Empty );
         }



         private string WriteScipt()
         {
              string script=@" ";
              string style=@"
                                 
          ";

         
              return script+style; 
         }
     
         private string writeList()
         {
              
              int[] columnWidth=new int[] {20,100,100,100,0};
              DataTable dt=source.Tables[0];
              string title=(this.IsSort ==0)?"title":"SortTitle";
              string list="

"+sortFlag+"";
                        }

                        else sortstr="";
                        if (columnWidth[j]==0)
                             list+="<?xml:namespace prefix = td?onclick=/"jscript />"+dt.Columns[j].ColumnName+sortstr+"";
                        else
                             list+=""+dt.Columns[j].ColumnName+sortstr+"";
                   }
              }
              else
              {
                   for(int j=1;j                   {
                        
                        if (columnWidth[j]==0)
                             list+=""+dt.Columns[j].ColumnName+"";
                        else
                             list+=""+dt.Columns[j].ColumnName+"";
                   }
              }

              list+="<?xml:namespace prefix = span?title='Refresh'?onclick=/"jscript />L";
              list+="<?xml:namespace prefix = div?style='BORDER-RIGHT />
";
           
              list+="
5<?xml:namespace prefix = span??class=delete?onclick=/"jscript />r1"+dt.Rows[i][j].ToString()+"
<?xml:namespace prefix = div???id='"+dt.Rows[i][0].ToString()+"'?style?=?'DISPLAY />
desc


"+dt.Rows[i][ExpandColumn].ToString()+"

";
              

              if (this.IsPaging ==0)return list; 
              //set pageing
              string paging="";
              if ( PageCount<2)
                   paging="9|3|4|:";
              else
              {
                   if (this.CurrentPage==1) 
                        paging="9|3|<?xml:namespace prefix = td??onclick=/"jscript />4|:";
                   else if (this.CurrentPage ==this.PageCount)
                        paging="9|3|4|:";
                   else 
                        paging="9|3|4|:";
              }

         
              list +="
Total:"+this.PageCount+"Page:"+this.CurrentPage+"

ligerGrid Ajax分页获取排序 详细介绍

刚开始用ligerGrid作分页排序的时候比较头疼,查找,上下页等处理后台都没法准确的获取前台查找控件里面的值,API里面也没有什么详细的解释 最后网上找了很久感觉都不是很全的资料,现在把这个结合说下...
  • qq873113580
  • qq873113580
  • 2015年04月23日 22:07
  • 1717

AngularJs创建自己的Grid–分页组件

我把这个组件命名为tm.pagination,原因是因为起名真的太难起了。而且我网名也叫天名, TM就这样了吧。github地址https://github.com/miaoyaoyao/Angula...
  • jacke121
  • jacke121
  • 2015年07月04日 15:50
  • 2428

datagrid自定义分页控件

  • qq_31971935
  • qq_31971935
  • 2016年08月10日 17:32
  • 489

五、UI-Grid 页脚

原文:105 Footer 表格页脚 UI-Grid 支持页脚,可以设置showGridFooter 选项设置为true(默认为false)显示。页脚显示网格中的总行数和已筛选行数。如果开启了 ...
  • vesong87
  • vesong87
  • 2017年03月30日 12:08
  • 960

基于mybatis 自定义标签分页的实现

ssm框架 ,mybatis 分页一直以来都是一个难题,博主也是参考大神的代码,整合到项目中的,废话不多说,看代码0、最最首先是把page 基础类加进来了...
  • TT_DUL
  • TT_DUL
  • 2016年06月06日 16:55
  • 1861

DevExpress中如何实现GridControl的分页功能

DevExpress中如何实现GridControl的分页功能 简介:DevExpress中如何实现GridControl的分页功能,         主要是利用DataNavigator和GridC...
  • pengzhen8805
  • pengzhen8805
  • 2013年11月06日 10:56
  • 10489

WPF 下的自定义控件以及 Grid 中控件的自适应

本文主要总结使用 C# 及 .NET 在 WPF 框架下,自定义控件的绘制以及窗体中控件的自适应。...
  • llmmll08
  • llmmll08
  • 2016年10月12日 16:39
  • 5877

Telerik Kendo UI 那点事【3】GridView MVVM前后台联动服务端分页、分组、过滤(查询)、排序

中文化之后,我们开始具体使用kendo ui组件。经常开发系统的我,通常从最常用的控件用起,那就是表格控件GridView!现在的软件系统基本上就是标签框、文本框、选择框、树、表格堆砌而成。因此接触任...
  • supperman_009
  • supperman_009
  • 2014年09月25日 18:43
  • 10859

ng-grid的server端排序/列筛选/翻页/loading

关于server端排序/列筛选/翻页/loading的一些设置
  • chaoyue1397
  • chaoyue1397
  • 2017年04月27日 18:05
  • 785

angular ui-grid 表格插件配置项

angular ui-grid 表格插件配置项
  • liang526011569
  • liang526011569
  • 2017年08月09日 10:52
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个自定义的可以分页,排序,扩展显示grid控件
举报原因:
原因补充:

(最多只允许输入30个字)