第一次写,忘记注解,对不住.
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());
}
}
}
