首页 > 开发 > .Net > 正文

.net中一些所封装的类

2020-02-03 15:59:15
字体:
来源:转载
供稿:网友
using system;
using system.io;
using system.web;
using system.data;
using system.web.ui;
using system.collections;
using system.web.ui.webcontrols;
using microsoft.web.ui.webcontrols;
using system.drawing;
using system.text;
using owc;

namespace jsl.mvc.page
{
/// <summary>
/// controls 的摘要说明。
/// </summary>
public class controls
{
private controls()
{
}
#region string
public static string encrypto(string source)
{
system.security.cryptography.hashalgorithm hashcryptoservice;
hashcryptoservice = new system.security.cryptography.sha1managed();

byte[] bytin = system.text.utf8encoding.utf8.getbytes(source);
byte[] bytout = hashcryptoservice.computehash(bytin);
return convert.tobase64string(bytout);
}
#endregion

#region basedatalist
public void bindbaselist(system.web.ui.webcontrols.basedatalist bdl_object,dataset ds, string tbname)
{
bdl_object.datasource=ds.tables[tbname];
bdl_object.databind();
}

public void bindbaselist(system.web.ui.webcontrols.basedatalist bdl_object,datatable dt)
{
bdl_object.datasource=dt;
bdl_object.databind();
}
#endregion

#region dropdownlist
public static void createdropdownlist(dropdownlist ddl_object, datatable dt, string s_text,string s_value)
{
ddl_object.datasource = dt;
ddl_object.datatextfield = s_text;
ddl_object.datavaluefield = s_value;
ddl_object.databind();
}

public static void createdropdownlist(dropdownlist ddl_object, dataset ds, string s_text,string s_value)
{
ddl_object.datasource = ds;
ddl_object.datatextfield = s_text;
ddl_object.datavaluefield = s_value;
ddl_object.databind();
}

public static void createdropdownlist(dropdownlist ddl_object, string s_text, string s_value)
{
listitem li = new listitem(s_text, s_value);
ddl_object.items.add(li);
}

public static void createdropdownlist(dropdownlist ddl_object, string[] s_text, string[] s_value)
{
for (int i = 0; i < s_text.length; i++)
{
listitem li = new listitem(s_text[i],s_value[i]);
ddl_object.items.add(li);
}
}

public static void copydropdownlist(dropdownlist ddl_source, dropdownlist ddl_target)
{
ddl_target.items.clear();
ddl_target.datatextfield = ddl_source.datatextfield;
ddl_target.datatextformatstring = ddl_source.datatextformatstring;
ddl_target.datavaluefield = ddl_source.datavaluefield;
for (int i = 0; i < ddl_source.items.count; i++)
{
ddl_target.items.add(ddl_source.items[i]);
}
}

public static void setdropdownlistvalue(dropdownlist ddl_object, string s_value)
{
foreach(listitem li in ddl_object.items)
{
if (li.value == s_value)
{
ddl_object.selectedvalue = s_value;
break;
}
else
{
ddl_object.selectedvalue = null;
}
}
}

public static void setdropdownlistvalue(dropdownlist[] ddl_object,string[] s_value)
{
int i = 0;
foreach(dropdownlist ddl in ddl_object)
{
setdropdownlistvalue(ddl,s_value[i++]);
}
}
#endregion

#region textbox
protected static void copytextbox(textbox tb_source, textbox tb_target)
{
tb_target.text = tb_source.text;
}

protected static void settextboxvalue(textbox tb_object, string s_value)
{
tb_object.text = s_value;
}

protected static void settextboxvalue(textbox[] tb_object,string[] s_value)
{
int i = 0;
foreach(textbox dt in tb_object)
{
settextboxvalue(dt,s_value[i++]);
}
}
#endregion

#region treeview
/// <summary>
/// 创建树形结构
/// </summary>
/// <param name="dt">要传入的数据表</param>
/// <param name="treenodecollection">树结点容器集合</param>
/// <param name="mapnodedata">结点主键</param>
/// <param name="maptext">显示内容</param>
/// <param name="mapnavigateurl">导航路径</param>
/// <param name="imageurl">图片地址</param>
/// <param name="parentname">结点父键</param>
/// <param name="relationoperation">结点过滤关系运算符</param>
/// <param name="parentvalue">运算比较值</param>
/// <param name="parentvaluetype">比较值类型</param>
/// <param name="sortexpression">排序方式</param>
/// <param name="bcheckbox">选择框显示与否</param>
/// <param name="mapstatus">选择框的内容</param>
/// <param name="maptarget">用于树保存时的分层标记</param>
public static void createviewtree(datatable dt, treenodecollection treenodecollection,
string mapnodedata, string maptext, string mapnavigateurl, string parentname,
string relationoperation, string parentvalue, string parentvaluetype,string sortexpression,
bool bcheckbox, string mapstatus, string maptarget)
{
if (parentvaluetype == "'") parentvalue = parentvaluetype + parentvalue + parentvaluetype;

string str = parentname + relationoperation + parentvalue;
datarow[] drs = dt.select( parentname + relationoperation + parentvalue, sortexpression);
foreach(datarow dr in drs)
{
treenode treenode = new treenode();
treenode.text = dr[maptext].tostring();
try
{
treenode.navigateurl = dr[mapnavigateurl].tostring();
}
catch{treenode.navigateurl = "";}
treenode.checkbox = bcheckbox;
if (maptarget != "" && maptarget != null) treenode.treenodexsltsrc = dr[maptarget].tostring();
if (treenode.checkbox)
{
bool bcheck ;
try
{
bcheck = (dr[mapstatus].tostring() == "1");
}
catch{bcheck = false;}
treenode.checked =bcheck ;
}
string treenodenodedata = treenode.nodedata = dr[mapnodedata].tostring();
treenodecollection.add(treenode);
if (parentvaluetype == "'") treenodenodedata =parentvaluetype+ treenodenodedata + parentvaluetype;

datarow[] tmpdrs = dt.select(parentname + relationoperation + treenodenodedata, sortexpression);
if ( tmpdrs.length > 0)
{
createviewtree(dt,treenode.nodes,mapnodedata,maptext,mapnavigateurl,parentname,relationoperation,treenode.nodedata,parentvaluetype,sortexpression,bcheckbox,mapstatus,maptarget);
}
}
}
#endregion

#region session
public static bool checksession(string checksession,system.web.ui.page webpage)
{
bool b=false;
foreach(string stmp in webpage.session.keys)
{
if (stmp.equals(checksession))
{
b = true;
break;
}
}
return b;
}

public static void checksession(string checksession,system.web.ui.page webpage,string errorpage)
{
bool b=false;
foreach(string stmp in webpage.session.keys)
{
if (stmp.equals(checksession))
{
b = true;
break;
}
}

if (!b) webpage.response.redirect(errorpage);
}
#endregion

#region reponse
public static void responsepage(system.web.ui.page webpage,string surl,string schoose)
{
try
{
switch(schoose)
{
case "1":
webpage.response.write("<script>window.location.href='"+surl+"';</script>");
break;
case "2":
webpage.server.transfer(surl );
break;
case "3":
webpage.response.redirect(surl);
break;
case "debug":
webpage.response.write("<script>alert('"+surl+"')</script>");
break;
default :
webpage.response.write(surl);
break;
}
}
catch
{
webpage.response.write("error url:"+surl);
}
}
#endregion

#region server to client javascript
public void javascript(string alert ,system.web.ui.page webpage)
{
webpage.registerstartupscript("script","<script language=javascript>alert('"+alert+"');</script>");
}
#endregion

#region split datagrid
public static string[] splitpage(system.web.ui.page curpage,datagrid dgsplit,datatable dtsplit,int irowssplitpage )
{
string page_object = "page"+dgsplit.id;
string spage = "1";
int icurpage = 1;
if (curpage.request.querystring[page_object]!=null) spage = curpage.request.querystring[page_object].tostring();
try { icurpage = int32.parse(spage); }
catch { icurpage = 1; }

int start = (int)((icurpage - 1) * irowssplitpage);
if (start < 0) start = 0;
int to = (int)(icurpage * irowssplitpage);

dataview dv = dtsplit.defaultview;
int iresults = dv.count;
int a1=0;
int ipagecount = math.divrem(iresults,irowssplitpage,out a1);
if (a1>0) ipagecount++;
if (icurpage > ipagecount || icurpage<= 0) icurpage = 1;
if (icurpage == ipagecount) to = dv.count;

datatable dt = dv.table.clone();
datarow dr;
for(int i=start;i<iresults;i++)
{
if(i<to)
{
dr = dt.newrow();
for(int k=0;k<dv.table.columns.count;k++)
{
// if (k==0)
// dr[k] = iresults - i;
// else
dr[k] = dv.table.rows[i][k];
}
dt.rows.add(dr);
}
}
dt.acceptchanges();

dataview dvresult = new dataview(dt);
dgsplit.datasource = dvresult;
dgsplit.databind();
// dgsplit.visible = !(dvresult.count == 0);

string strnav = "";
int iendpage = ipagecount;
strnav += "<a href='?"+page_object+"="+ 1.tostring() + "'>首 页</a> ";
if (icurpage>1)
{
strnav += "<a href='?"+page_object+"="+ (icurpage - 1).tostring() + "'>上 页</a> ";
}
else
{
strnav += " 上 页 ";
}
if (icurpage>11)
{
strnav += "<a href='?"+page_object+"=1'>1</a> ...";
}
if (ipagecount > icurpage + 10) iendpage = icurpage + 10;
for (int i = icurpage - 10; i < iendpage + 1; i++)
{
if(i>=1)
{
if (i==icurpage)
{
strnav +="<font color=#990000><strong>"+ i.tostring() + "</strong></font> ";
}
else
{
strnav += "<a href='?"+page_object+"="+ i.tostring() + "'>"+ i.tostring() +"</a> ";
}
}
}

if ((icurpage+10) < ipagecount)
strnav += "... <a href='?"+page_object+"="+ ipagecount.tostring() + "'>"+ ipagecount.tostring() + "</a>";
if (icurpage < ipagecount)
{
strnav += " <a href='?"+page_object+"="+ (icurpage+1).tostring() + "'>下 页</a> ";
}
else
{
strnav += " 下 页 ";
}
strnav += " <a href='?"+page_object+"="+ (ipagecount).tostring() + "'>末 页</a> ";


string[] strnavresult = new string[2];
strnavresult[0] = strnav;
strnavresult[1] = "[共"+ iresults.tostring() +"条][第"+ (start+1).tostring() +"-"+ to.tostring() +"条][共"+ ipagecount.tostring() +"页]" ;

return strnavresult;
}
#endregion

#region datagrid to excel
public static void datagrid2excel(datagrid dg, string filename)
{
owc.spreadsheetclass xlsheet = new spreadsheetclass();
int ihead = 0;
foreach(datagridcolumn dgc in dg.columns)
{
xlsheet.activesheet.cells[1, ihead + 1] = dgc.headertext;
// xlsheet.get_range(xlsheet.cells[1, 1], xlsheet.cells[1, i + 1]).font.bold = true;
// xlsheet.get_range(xlsheet.cells[1, 1], xlsheet.cells[1, i + 1]).font.color = "red";
ihead++;
}

int icols = dg.items[0].cells.count;
for (int j = 0; j < dg.items.count; j++)
{
for (int i = 0; i < icols; i++)
{
xlsheet.activesheet.cells[j + 2, i + 1] = dg.items[j].cells[i].text.replace("&nbsp;"," ");
}
}

try
{
//system.web.httpcontext.current.server.mappath
xlsheet.activesheet.export(filename, owc.sheetexportactionenum.ssexportactionopeninexcel);
}
catch
{
return;
}
}
#endregion

#region hostname
public static string gethostname()
{
return system.net.dns.gethostname();
}

public static system.net.iphostentry gethostbyname(string hostname)
{
return system.net.dns.gethostbyname(hostname);
}

#endregion

#region process
private void killprocess(string processname)
{
system.diagnostics.process myproc= new system.diagnostics.process();
//得到所有打开的进程
try
{
foreach (system.diagnostics.process thisproc in system.diagnostics.process.getprocessesbyname(processname))
{
if(!thisproc.closemainwindow())
{
thisproc.kill();
}
}
}
catch(exception exc)
{
;
}
}
#endregion

#region execel
/// <summary>
/// class to export a number of web controls to excel.
/// pass buildexceltable your control, then call exporttobrowser() to write down to the browser.
/// this will open a new instance of excel.
/// if you want to open the excel file in the current browser window, comment out the response.addheader line.
/// </summary>
public class excelwriter
{
protected string m_szexcelhtnml;
private string szfilename;
private bool bstripbreaks;

public void buildexceltable(object dg)
{
//header styles
stringwriter sw = new stringwriter();
htmltextwriter ht = new htmltextwriter(sw);

string sobjecttypename = dg.gettype().name.tostring();
switch (sobjecttypename)
{
case "datagrid":
((datagrid)dg).showheader = true;
((datagrid)dg).rendercontrol(ht);
break;
case "datalist":
((datalist)dg).rendercontrol(ht);
break;
case "textbox":
((textbox)dg).rendercontrol(ht);
break;
case "label":
ht.write(((label)dg).text);
break;
case "tablerow":
ht.write("<table>");
((tablerow)dg).rendercontrol(ht);
ht.write("</table>");
break;
case "table":
((table)dg).rendercontrol(ht);
break;
default:
break;
}

m_szexcelhtnml += sw.tostring();

}

public void exporttobrowser()
{
if(szfilename == "" || szfilename == null)
{
szfilename = "excelfile.xls";
}

if(bstripbreaks)
{
m_szexcelhtnml = m_szexcelhtnml.replace("<br>", " ");
m_szexcelhtnml = m_szexcelhtnml.replace("<br>", " ");
}
httpcontext.current.response.clear();
httpcontext.current.response.clearheaders();
httpcontext.current.response.addheader("content-disposition", "attachment; filename=" + szfilename);
httpcontext.current.response.contenttype = "application/vnd.ms-excel";
httpcontext.current.response.write(m_szexcelhtnml);
httpcontext.current.response.flush();
httpcontext.current.response.end();
}

public string filename
{
get
{
return szfilename;
}
set
{
szfilename = value;
}
}

public bool stripbreaktags
{
get
{
return bstripbreaks;
}
set
{
bstripbreaks = value;
}
}
}
#endregion

#region pdf
public class pdfgenerator
{
static float pagewidth = 594.0f;
static float pagedepth = 828.0f;
static float pagemargin = 30.0f;
static float fontsize = 20.0f;
static float leadsize = 10.0f;
static streamwriter ppdf=new streamwriter("e://mypdf.pdf");
static memorystream mpdf= new memorystream();
static void converttobyteandaddtostream(string strmsg)
{
byte[] buffer=null;
buffer=asciiencoding.ascii.getbytes(strmsg);
mpdf.write(buffer,0,buffer.length);
buffer=null;
}

static string xrefformatting(long xvalue)
{
string strmsg =xvalue.tostring();
int ilen=strmsg.length;
if (ilen<10)
{
stringbuilder s=new stringbuilder();
int i=10-ilen;
s.append('0',i);
strmsg=s.tostring() + strmsg;
}
return strmsg;
}

static void main(string[] args)
{
arraylist xrefs=new arraylist();
//byte[] buffer=null;
float ypos =0f;
long streamstart=0;
long streamend=0;
long streamlen =0;
string strpdfmessage=null;
//pdf文档头信息
strpdfmessage="%pdf-1.1/n";
converttobyteandaddtostream(strpdfmessage);

xrefs.add(mpdf.length);
strpdfmessage="1 0 obj/n";
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="<< /length 2 0 r >>/n";
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="stream/n";
converttobyteandaddtostream(strpdfmessage);
////////pdf文档描述
streamstart=mpdf.length;
//字体
strpdfmessage="bt/n/f0 " + fontsize +" tf/n";
converttobyteandaddtostream(strpdfmessage);
//pdf文档实体高度
ypos = pagedepth - pagemargin;
strpdfmessage=pagemargin + " " + ypos +" td/n" ;
converttobyteandaddtostream(strpdfmessage);
strpdfmessage= leadsize+" tl/n" ;
converttobyteandaddtostream(strpdfmessage);

//实体内容
strpdfmessage= "(http://www.wenhui.org)tj/n" ;
converttobyteandaddtostream(strpdfmessage);
strpdfmessage= "et/n";
converttobyteandaddtostream(strpdfmessage);
streamend=mpdf.length;

streamlen=streamend-streamstart;
strpdfmessage= "endstream/nendobj/n";
converttobyteandaddtostream(strpdfmessage);
//pdf文档的版本信息
xrefs.add(mpdf.length);
strpdfmessage="2 0 obj/n"+ streamlen + "/nendobj/n";
converttobyteandaddtostream(strpdfmessage);

xrefs.add(mpdf.length);
strpdfmessage="3 0 obj/n<</type/page/parent 4 0 r/contents 1 0 r>>/nendobj/n";
converttobyteandaddtostream(strpdfmessage);

xrefs.add(mpdf.length);
strpdfmessage="4 0 obj/n<</type /pages /count 1/n";
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="/kids[/n3 0 r/n]/n";
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="/resources<</procset[/pdf/text]/font<</f0 5 0 r>> >>/n";
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="/mediabox [ 0 0 "+ pagewidth + " " + pagedepth + " ]/n>>/nendobj/n";
converttobyteandaddtostream(strpdfmessage);

xrefs.add(mpdf.length);
strpdfmessage="5 0 obj/n<</type/font/subtype/type1/basefont/courier/encoding/winansiencoding>>/nendobj/n";
converttobyteandaddtostream(strpdfmessage);

xrefs.add(mpdf.length);
strpdfmessage="6 0 obj/n<</type/catalog/pages 4 0 r>>/nendobj/n";
converttobyteandaddtostream(strpdfmessage);

streamstart=mpdf.length;
strpdfmessage="xref/n0 7/n0000000000 65535 f /n";
for(int i=0;i<xrefs.count;i++)
{
strpdfmessage+=xrefformatting((long) xrefs[i])+" 00000 n /n";
}
converttobyteandaddtostream(strpdfmessage);
strpdfmessage="trailer/n<</n/size "+ (xrefs.count+1)+"/n/root 6 0 r/n>>/n";
converttobyteandaddtostream(strpdfmessage);

strpdfmessage="startxref/n" + streamstart+"/n%%eof/n";
converttobyteandaddtostream(strpdfmessage);
mpdf.writeto(ppdf.basestream);

mpdf.close();
ppdf.close();
}
}

#endregion

#region up load fille
public static string upfile(system.web.ui.htmlcontrols.htmlinputfile infile, string savefilepath, string savefilename, string choose)
{
string filename = infile.postedfile.filename;
if (infile.postedfile!=null && infile.value != "" )
{
int i;
switch (choose)
{
case ".":
i = filename.lastindexof(".");
savefilename += filename.substring(i);
break;
default:
i = filename.lastindexof("/");
if (i <= 0) i = filename.lastindexof("//");
savefilename += choose + filename.substring(i + 1);
break;
}
if (savefilepath.endswith("/") || savefilepath.endswith("//"))
filename = savefilepath + savefilename;
else
filename = savefilepath + "/" + savefilename;
savefilepath = system.web.httpcontext.current.server.mappath(filename);
infile.postedfile.saveas(savefilepath);
return filename;
}
else
{
return null;
}
}
#endregion
}
}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表