欢迎光临
我们一直在努力

一个自定义的可以分页,排序,扩展显示grid控件-ASP教程,ASP应用

建站超值云服务器,限时71元/月

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

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="

";

if (expandcolumn!="") list+="";

if (this.issort==1)

{

string sortstr="";

string sortflag=(this.sortorder=="asc")?"5":"6";

//set header and sort

for(int j=1;j {

if (sortcolumn==j)

{

sortstr=""+sortflag+"";

}

else sortstr="";

if (columnwidth[j]==0)

list+=""+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+="l

";

list+="";

list+="";

for(int i=0;i {

list+="";

//expand column

if (expandcolumn!="")

list+="5 ";

//delete column

list+="r";

//edit column

list+="1";

for(int j=1;j {

list+=""+dt.rows[i][j].tostring()+"";

}

list+="

";

//expand display

if (expandcolumn!="")

list+=" desc

——————————————————————————–

"+dt.rows[i][expandcolumn].tostring()+"

";

}

list +="

";

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|4|:";

else if (this.currentpage ==this.pagecount)

paging="9|3|4|:";

else

paging="9|3|4|:";

}

list +="total:"+this.pagecount+"page:"+this.currentpage+""+paging;

return list;

}

///

/// render this control to the output parameter specified.

///

/// the html writer to write out to

protected override void render(htmltextwriter output)

{

output.write(writescipt());

output.write(writelist());

}

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个自定义的可以分页,排序,扩展显示grid控件-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章