用户自定义控件代码如下:
using system;
using system.web.ui;
using system.web.ui.webcontrols;
using system.componentmodel;
using system.io;
namespace ewfs.cl
{
public struct stutreenodes
{
public string strkey;
public string strdispval;
public string strparentkey;
public string strjavascriptcmd;
}
public struct stutreenodesicons
{
public string strtreecaptionicon;
public string strtreecontentopenicon;
public string strtreecontentcloseicon;
}
public struct stutreepopmenu
{
public string strmenuitemimg;
public string strmenuitemtext;
public string strmenuitemcmd;
}
[defaultproperty("text"),
toolboxdata("<{0}:treeview runat=server></{0}:treeview>")]
public class treeview : system.web.ui.webcontrols.webcontrol
{
private string m_treecaption; //标题
private stutreenodes[] m_stutreenodes; //节点内容
private stutreenodesicons m_stutreenodesicons; //节点图标
private string m_treechangedposturl; //修改后的树传送的地址
private bool m_treeadddir;
private bool m_treerendir;
private bool m_treedeldir;
private stutreepopmenu[] m_stutreepopmenu;
private string m_gotoid;
private bool m_treerootpopmenu;
private system.data.dataset m_dstreenodes;
protected system.web.ui.webcontrols.table treetable;
public string treegotoid //定位id
{
get{return m_gotoid;}
set{m_gotoid=value;}
}
[bindable(true),
category("appearance"),
defaultvalue(true)]
public bool treerootpopmenu
{
get{return m_treerootpopmenu;}
set{m_treerootpopmenu=value;}
}
[bindable(true),
category("appearance"),
defaultvalue("")]
public bool treeadddir
{
get{return m_treeadddir;}
set{m_treeadddir=value;}
}
public bool treerendir
{
get{return m_treerendir;}
set{m_treerendir=value;}
}
public bool treedeldir
{
get{return m_treedeldir;}
set{m_treedeldir=value;}
}
public stutreepopmenu[] stutreepopmenu
{
get{return m_stutreepopmenu;}
set{m_stutreepopmenu=value;}
}
public string treechangedposturl
{
get{return m_treechangedposturl;}
set{m_treechangedposturl=value;}
}
public stutreenodesicons stutreenodesicons
{
get {return m_stutreenodesicons;}
set {m_stutreenodesicons = value;}
}
public stutreenodes[] stutreenodes
{
get
{
return m_stutreenodes;
}
set
{
m_stutreenodes=value;
}
}
public string treecaption
{
get
{
return m_treecaption;
}
set
{
m_treecaption = value;
}
}
/// <summary>
/// 获取节点内容
/// </summary>
public system.data.dataset dstreenodes
{
get{return this.m_dstreenodes;}
set
{
this.m_dstreenodes=value;
settreenodes();
}
}
private void settreenodes()
{
this.m_stutreenodes =new stutreenodes[m_dstreenodes.tables[0].rows.count];
for(int i=0;i<m_dstreenodes.tables[0].rows.count;i++)
{
this.m_stutreenodes[i].strkey=m_dstreenodes.tables[0].rows[i][0].tostring();
this.m_stutreenodes[i].strparentkey=m_dstreenodes.tables[0].rows[i][1].tostring()=="0"?"":m_dstreenodes.tables[0].rows[i][1].tostring();
this.m_stutreenodes[i].strdispval=m_dstreenodes.tables[0].rows[i][2].tostring();
this.m_stutreenodes[i].strjavascriptcmd=m_dstreenodes.tables[0].rows[i][3].tostring();
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 html 编写器 </param>
protected override void createchildcontrols()
{
system.web.ui.webcontrols.table otb=new table();
system.web.ui.webcontrols.table otb1=new table();
system.web.ui.webcontrols.tablerow otr=new tablerow ();
system.web.ui.webcontrols.tablecell otd=new tablecell ();
system.web.ui.webcontrols.unit ou=new unit("98%");
system.web.ui.controlcollection occ=null;
system.web.ui.control oc1=null;
int i;
//输出js文件
string scr="";//"<script language=javascript src=buildtree.js></script>\r\n";
//scr+="<script language=javascript src=popmenu.js></script>\r\n";
scr+="<script>\r\n";
//设置右键菜单
scr+="var menuitemarray=new array( ";
if(m_treeadddir)
{
scr+="[<img src=images/mycomputer.gif>,增加目录,treeadddir()],";
}
if(m_treedeldir)
{
scr+="[<img src=images/mycomputer.gif>,删除目录,treedeldir()],";
}
if(m_treerendir)
{
scr+="[,重命名,treerendir()],";
}
//通过外部增加菜单内容
if(!(m_stutreepopmenu==null))
{
for(i=0;i<m_stutreepopmenu.length ;i++)
{
scr+="["+m_stutreepopmenu[i].strmenuitemimg +","
+""+m_stutreepopmenu[i].strmenuitemtext +","
+""+m_stutreepopmenu[i].strmenuitemcmd.replace("","\\") +"],";
}
}
//scr+="[,,]);\n";
scr=scr.substring(0,scr.length-1);
scr+=");\n";
scr+="var oimgs=new array(3);\r\n";
scr+="for(i=0;i<3;i++)\r\n";
scr+="{\r\n";
scr+=" oimgs[i]=new image;\r\n";
scr+="}\r\n";
scr+="oimgs[0].src="+m_stutreenodesicons.strtreecaptionicon+"\r\n"; //头部图形
scr+="oimgs[1].src="+m_stutreenodesicons.strtreecontentcloseicon +"\r\n"; //未选中
scr+="oimgs[2].src="+m_stutreenodesicons.strtreecontentopenicon +"\r\n"; //选中
scr+="document.body.onclick=hiddenpopmenu();\r\n";
scr+="function treeselectstart(){if(event.srcelement.tagname==input){return true;}else{return false;}}\n";
scr+=tabletreemove();
scr+="</script>";
scr+="<script language=vbscript>\r\n";
scr+="call document.body.attachevent(\"onclick\",getref(\"treeviewaddbodyonclick\"))\r\n";
scr+="sub treeviewaddbodyonclick()\r\n";
scr+=" hiddenpopmenu\r\n end sub \r\n</script>\r\n";
scr+="<script>var eisotreeviewpostaction="
+m_treechangedposturl+"</script>\r\n"; //指定修改后传送的url
scr+="</form><iframe src= name=eisotreeviewframe style=\"display:none\"></iframe>\r\n";
scr+="<form name=treechangedform action="+m_treechangedposturl
+" target=eisotreeviewframe style=\"display:none\"><input type=text name=changedvalue ></form><from>\r\n";
this.controls.add (new literalcontrol(scr));
//this.parent.page.controls[0].controls.add
//建立根目录
treetable=new table ();
treetable.borderwidth =0;
treetable.cellpadding =0;
treetable.cellspacing =0;
treetable.id="treetable";
treetable.style.add ("font-size","12px");
treetable.style.add ("width","100%");
otr=new tablerow ();
otr.id ="treeviewroot";
otd=new tablecell ();
otd.width =20;
otd.text ="<img src="+m_stutreenodesicons.strtreecaptionicon+" width=16 heigth=16>";
otr.cells.add (otd);
otd=new tablecell ();
otd.style.add ("width","99%");
otd.style.add ("cursor","hand");
otd.text ="<span>"+m_treecaption+"</span>";
otd.style.add ("padding-left","4px");
otr.cells.add (otd);
treetable.rows.add (otr);
otr=new tablerow ();
otd=new tablecell ();
otd.columnspan =2;
otr.cells.add (otd);
treetable.rows.add (otr);
this.controls.add (treetable);
stutreenodes[] stn =m_stutreenodes;
treetable.attributes.add ("onclick","treenodeclick()");
treetable.attributes.add ("onselectstart","return treeselectstart();");
treetable.attributes.add ("oncontextmenu","treepopmenu();return false;");
// treetable.attributes.add ("onmousemove","tabletreemv()");
// treetable.attributes.add ("onmousedown","tabletreemd()");
// treetable.attributes.add ("onmouseup","tabletreemu()");
for(i=0;i<stn.length ;i++)
{
occ=null;
otr=new tablerow ();
otd=new tablecell ();
otd.width =20;
otd.text ="<img src=croend.gif width=20 height=18>";
otr.cells.add(otd);
otd=new tablecell ();
otd.width =16;
otd.text ="<img src="+m_stutreenodesicons.strtreecontentcloseicon +" width=15 height=15>";
otd.verticalalign =verticalalign.top;
otr.cells.add(otd);
otd.style.add ("padding-left","4px");
otd=new tablecell ();
otd.width =ou;
otd.style.add ("padding-left","4px");
otd.text ="<span style=\"cursor:hand\">"+stn[i].strdispval+"</span>" ;
otd.attributes.add("nowrap","");
otr.cells.add(otd);
otr.attributes.add ("cmd",stn[i].strjavascriptcmd);
otb=new table() ;
otb.rows.add(otr);
otb.cellpadding =0;
otb.cellspacing =0;
otb.style.add ("width","100%");
otb.style.add ("font-size","12px");
otb.id =stn[i].strkey ;
if(stn[i].strparentkey =="")
{
occ=treetable.rows[1].cells[0].controls;
}
else
{
oc1=this.page.findcontrol(stn[i].strparentkey);
otb1=(table) oc1;
//有子节点增加一行
if(otb1.rows.count==1)
{
addtablerow(otb1);
}
occ=otb1.rows[1].cells[otb1.rows[1].cells.count -1].controls;
}
if(occ.count >0)
{
otb1=(table)occ[occ.count-1];
if(otb1.rows[0].cells[0].text.indexof ("croend.gif")>=0)
otb1.rows[0].cells[0].text ="<img src=cro.gif width=20 height=18>";
}
occ.addat(occ.count,otb);
}
//treetable.rows[1].cells.add(treetable.rows[0].cells[0]);
for(i=0;i<stn.length ;i++)
{
oc1=page.findcontrol(stn[i].strkey);
otb1=(table) oc1;
if(otb1.rows.count ==2)
{
if(otb1.rows[0].cells[0].text.indexof ("end.gif")==-1)
{
otb1.rows[1].cells[0].attributes.add ("background","lin.gif");
}
otb1.rows[0].cells[0].text ="<img src=clo.gif width=20 height=18>";
otb1.rows[0].cells[0].style.add ("cursor","hand");
otb1.rows[1].style.add("display","none");
createimages();
}
}
this.controls.add(new literalcontrol (addtreejs()));
this.controls.add(new literalcontrol (addpopmenujs()));
}
#region 增加表行 addtablerow(table otb2)
private void addtablerow(table otb2)
{
system.web.ui.webcontrols.tablerow otr=new tablerow ();
system.web.ui.webcontrols.tablecell otd=new tablecell ();
for(int i=0;i<otb2.rows[0].cells.count-1;i++)
{
otd=new tablecell ();
if(i==otb2.rows[0].cells.count-2)
otd.columnspan =2;
otr.cells.add (otd);
}
otb2.rows.add (otr);
}
#endregion
#region 增加右键弹出式菜单 addpopmenujs()
private string addpopmenujs()
{
string strpopmenu="<script language=javascript>\r\n//gdx\r\n";
strpopmenu+="htmlpopmenu=<div id=\"opopmenu\" style=\"left: 20px; visibility: hidden; position: absolute; top: 30px\">;\r\n\r\n";
strpopmenu+="htmlpopmenu+=<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\r\n";
strpopmenu+="htmlpopmenu+=<tr>\r\n";
strpopmenu+="htmlpopmenu+=<td height=\"1\" bgcolor=\"white\" style=\"border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid; background-color: #ebf5f7\">\r\n";
strpopmenu+="//menu item area\r\n";
strpopmenu+="htmlpopmenu+=<table id=\"opopmenutb\" border=\"0\" style=\"cursor:hand;font-size:12px\" onmousemove=\"dispmenuitem()\" onmouseout=\"if(!(objmenuitem==\\\\)){objmenuitem.parentelement.style.backgroundcolor=\\\\;objmenuitem.style.color=\\\\;}\" oncontextmenu=\"return false\" onclick=\"execmenucmd(event.srcelement.parentelement.getattribute(\\cmd\\));\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\r\n";
strpopmenu+="htmlpopmenu+=</table>\r\n";
strpopmenu+="//menu item area\r\n";
strpopmenu+="htmlpopmenu+=</td>\r\n";
strpopmenu+="htmlpopmenu+=<td width=\"3\">\r\n";
strpopmenu+="htmlpopmenu+=<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\"table2\">\r\n";
strpopmenu+="htmlpopmenu+=<tr>\r\n";
strpopmenu+="htmlpopmenu+=<td height=\"3\"></td>\r\n";
strpopmenu+="htmlpopmenu+=<tr>\r\n";
strpopmenu+="htmlpopmenu+=<td>\r\n";
strpopmenu+="htmlpopmenu+=<div style=\"filter: progid:dximagetransform.microsoft.basicimage( rotation=0,mirror=0,invert=0,xray=0,grayscale=0,opacity=0.25);background-color: gray;height:100%; width:3px\">\r\n";
strpopmenu+="htmlpopmenu+=<img src=\"\" width=\"1\" height=\"1\">\r\n";
strpopmenu+="htmlpopmenu+=</div>\r\n";
strpopmenu+="htmlpopmenu+=</td>\r\n";
strpopmenu+="htmlpopmenu+=</tr>\r\n";
strpopmenu+="htmlpopmenu+=</table>\r\n";
strpopmenu+="htmlpopmenu+=</td>\r\n";
strpopmenu+="htmlpopmenu+=</tr>\r\n";
strpopmenu+="htmlpopmenu+=<tr style=\"height:3px\">\r\n";
strpopmenu+="htmlpopmenu+=<td colspan=\"2\">\r\n";
strpopmenu+="htmlpopmenu+=<table width=\"100%\" height=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\"table3\">\r\n";
strpopmenu+="htmlpopmenu+=<tr>\r\n";
strpopmenu+="htmlpopmenu+=<td width=\"3\"></td>\r\n";
strpopmenu+="htmlpopmenu+=<td><div style=\"filter: progid:dximagetransform.microsoft.basicimage( rotation=0,mirror=0,invert=0,xray=0,grayscale=0,opacity=0.25);background-color: gray;height:3px\">\r\n";
strpopmenu+="htmlpopmenu+=<img src=\"\" width=\"1\" height=\"1\"></div>;\r\n";
strpopmenu+="htmlpopmenu+=</td>;\r\n";
strpopmenu+="htmlpopmenu+=</tr>;\r\n";
strpopmenu+="htmlpopmenu+=</table>;\r\n";
strpopmenu+="htmlpopmenu+=</td>;\r\n";
strpopmenu+="htmlpopmenu+=</tr>;\r\n";
strpopmenu+="htmlpopmenu+=</table>;\r\n";
strpopmenu+="htmlpopmenu+=</div>;\r\n";
strpopmenu+="\r\n";
strpopmenu+="var objmenuitem=;\r\n";
strpopmenu+="var objbeforepop=;\r\n";
strpopmenu+="function dispmenuitem()\r\n";
strpopmenu+="{\r\n";
strpopmenu+=" if(event.srcelement.tagname==td)\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" if(!(objmenuitem==))\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" objmenuitem.parentelement.style.backgroundcolor=;\r\n";
strpopmenu+=" objmenuitem.style.color=black;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" objmenuitem=event.srcelement;\r\n";
strpopmenu+=" objmenuitem.parentelement.style.backgroundcolor=blue;\r\n";
strpopmenu+=" objmenuitem.style.color=white;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+="}\r\n";
strpopmenu+="\r\n";
strpopmenu+="function execmenucmd(cmd)\r\n";
strpopmenu+="{\r\n";
strpopmenu+=" if(!cmd== && cmd.indexof(()>0 && cmd.indexof())>0)\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" eval(cmd);\r\n";
strpopmenu+=" hiddenpopmenu();\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" hiddenpopmenu();\r\n";
strpopmenu+="}\r\n";
strpopmenu+="\r\n";
strpopmenu+="function displaymenu(arraymenuitem)\r\n";
strpopmenu+="{\r\n";
strpopmenu+=" //window.opopmenutb.removenode(false);\r\n";
strpopmenu+=" while(opopmenutb.rows.length>0)\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" opopmenutb.rows[0].removenode(true);\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" for(i=0;i<arraymenuitem.length-1;i++)\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" myrow=window.opopmenutb.insertrow();\r\n";
strpopmenu+=" mycel=myrow.insertcell();\r\n";
strpopmenu+=" mycel.height=19\r\n";
strpopmenu+=" mycel.style.paddingleft=4px;\r\n";
strpopmenu+=" mycel.style.paddingright=2px;\r\n";
strpopmenu+=" mycel.style.paddingtop=2px;\r\n";
strpopmenu+=" mycel.style.paddingbottom=2px;\r\n";
strpopmenu+=" mycel.innerhtml=arraymenuitem[i][0];\r\n";
strpopmenu+=" mycel=myrow.insertcell();\r\n";
strpopmenu+=" mycel.style.paddingleft=2px;\r\n";
strpopmenu+=" mycel.style.paddingright=4px;\r\n";
strpopmenu+=" mycel.style.paddingtop=2px;\r\n";
strpopmenu+=" mycel.style.paddingbottom=2px;\r\n";
strpopmenu+=" mycel.innerhtml=arraymenuitem[i][1];\r\n";
strpopmenu+=" mycel.nowarp=true;\n";
strpopmenu+=" myrow.setattribute(cmd,arraymenuitem[i][2]); \r\n";
strpopmenu+=" }\r\n";
strpopmenu+="}\r\n";
strpopmenu+="\r\n";
strpopmenu+="function popmenu()\r\n";
strpopmenu+="{\r\n";
strpopmenu+=" \r\n";
strpopmenu+=" objbeforepop=event.srcelement; //弹出菜单前的对象\r\n";
strpopmenu+=" \r\n";
strpopmenu+=" if((opopmenu.clientheight+event.y)>document.body.clientheight)\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" opopmenu.style.postop =event.y-opopmenu.clientheight+document.body.scrolltop;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" else\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" opopmenu.style.postop =event.y+document.body.scrolltop;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" if((opopmenu.clientwidth+event.x)>document.body.clientwidth )\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" opopmenu.style.posleft =event.x-opopmenu.clientwidth+document.body.scrollleft ;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" else\r\n";
strpopmenu+=" {\r\n";
strpopmenu+=" opopmenu.style.posleft =event.x+document.body.scrollleft;\r\n";
strpopmenu+=" }\r\n";
strpopmenu+=" opopmenu.style.visibility =visible;\r\n";
strpopmenu+=" //alert(opopmenu.clientheight );\r\n";
strpopmenu+="}\r\n";
strpopmenu+="function hiddenpopmenu()\r\n";
strpopmenu+="{\r\n";
strpopmenu+=" opopmenu.style.visibility =hidden;\r\n";
strpopmenu+="}\r\n";
strpopmenu+="document.write(htmlpopmenu);\r\n</script>";
strpopmenu="<script language=javascript src=/egms/web/js/popmenu.js></script>";
return strpopmenu;
}
#endregion
private string addtreejs()
{
string strtree="<script language=javascript>\r\n";
strtree+="var strtreeundeletedir=子目录不为空,不能删除;\n";
strtree+="var strtreenewitem=新建目录;\n";
strtree+="treehtml1=<div id=\"treeinputparent\" style = \"visibility: hidden;position:absolute\">\r\n";
strtree+="treehtml1+=<input type=\"text\" name=\"treeinput\" id=\"treeinput\" style=\"border-right: 1px solid; border-top: 1px solid; font-size: 12px; z-index: 9; border-left: 1px solid; border-bottom: 1px solid;\" onkeypress=\"treeinputkey();\" onblur=\"treeinputblur();\">\r\n";
strtree+="treehtml1+=<input type=\"hidden\" id=\"treeinput1\" id=\"treeinput1\">\r\n";
strtree+="treehtml1+=</div>\r\n";
strtree+="\r\n";
strtree+=" document.write(treehtml1);\r\n";
strtree+="\r\n";
strtree+="var objselected=\r\n";
//快速定位
strtree+="function tmpgotoid(id)\n";
strtree+="{\n";
strtree+=" obj=document.all.tags(table);\n";
strtree+=" for(i=0;i<obj.length;i++)\n";
strtree+=" {\n";
strtree+=" if(obj[i].id==id)\n";
strtree+=" {\n";
strtree+=" obj=obj[i];\n";
strtree+=" break;\n";
strtree+=" }\n";
strtree+=" }\n";
strtree+=" obj.rows[0].cells[1].innerhtml=<img width=16 height=16 border=0 src=+oimgs[2].src+>;\n";
strtree+=" //obj.rows[0].cells[2].childnodes[0].style.backgroundcolor=blue;\n";
strtree+=" //obj.rows[0].cells[2].childnodes[0].style.color=white;\n";
strtree+=" objselected=obj.rows[0].cells[2].childnodes[0];\n";
strtree+=" \n";
strtree+=" obj=obj.parentelement.parentelement.parentelement.parentelement;\n";
strtree+=" while(!(obj.id==treetable))\n";
strtree+=" {\n";
strtree+=" obj.rows[1].style.display=inline;\n";
strtree+=" obj.rows[0].cells[0].childnodes[0].src=ope.gif;\n";
strtree+=" obj=obj.parentelement.parentelement.parentelement.parentelement;\n";
strtree+=" }\n";
strtree+=" \n";
strtree+="}\n";
string mm=m_gotoid+"";
if(!(mm.trim()=="")) //快速定位
strtree+="tmpgotoid("+mm+");\n";
//右键弹出菜单
strtree+="function treepopmenu()\r\n";
strtree+="{\r\n";
strtree+=" if(event.srcelement.tagname==span)\r\n";
strtree+=" {\r\n";
//根节点禁止右键菜单
if(m_treerootpopmenu==false)
{
strtree+=" if(event.srcelement.parentelement.parentelement.id==treeviewroot)\n";
strtree+=" return;\n";
}
strtree+=" if (!(objselected==))\r\n";
strtree+=" {\r\n";
strtree+=" loc=objselected.parentelement.parentelement.cells.length-2\r\n";
strtree+=" objselected.style.backgroundcolor=;\r\n";
strtree+=" objselected.style.color=;\r\n";
strtree+=" if(!(objselected.parentelement.parentelement.parentelement.parentelement.id==treetable))\n";
strtree+=" objselected.parentelement.parentelement.cells[loc].innerhtml=oimgs[1].outerhtml\r\n";
strtree+=" }\r\n";
strtree+=" objselected=event.srcelement;\r\n";
strtree+=" loc=objselected.parentelement.parentelement.cells.length-2\r\n";
strtree+=" objselected.style.backgroundcolor=blue;\r\n";
strtree+=" objselected.style.color=white\r\n";
strtree+=" displaymenu(menuitemarray);\r\n";
strtree+=" popmenu();\r\n";
strtree+=" }\r\n";
strtree+="}\r\n";
strtree+="function treenodeclick()\r\n";
strtree+="{\r\n";
strtree+=" \r\n";
strtree+=" if(event.srcelement.tagname==span)\r\n";
strtree+=" {\r\n";
strtree+=" if (!(objselected==))\r\n";
strtree+=" {\r\n";
strtree+=" loc=objselected.parentelement.parentelement.cells.length-2\r\n";
strtree+=" objselected.style.backgroundcolor=;\r\n";
strtree+=" objselected.style.color=;\r\n";
strtree+=" if(!(objselected.parentelement.parentelement.parentelement.parentelement.id==treetable))\n";
strtree+=" objselected.parentelement.parentelement.cells[loc].innerhtml=oimgs[1].outerhtml\r\n";
strtree+=" }\r\n";
strtree+=" objselected=event.srcelement;\r\n";
strtree+=" loc=objselected.parentelement.parentelement.cells.length-2\r\n";
strtree+=" objselected.style.backgroundcolor=blue;\r\n";
strtree+=" objselected.style.color=white\r\n";
strtree+=" if(!(objselected.parentelement.parentelement.parentelement.parentelement.id==treetable))\n";
strtree+=" objselected.parentelement.parentelement.cells[loc].innerhtml=oimgs[2].outerhtml\r\n";
strtree+=" cmdstr=objselected.parentelement.parentelement.cmd;\r\n";
strtree+=" if(!(cmdstr==))\r\n";
strtree+=" eval(cmdstr);\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" \r\n";
strtree+=" if(event.srcelement.tagname==img)\r\n";
strtree+=" {\r\n";
strtree+=" obj=event.srcelement;\r\n";
strtree+=" if(obj.src.indexof(clo.gif)>0)\r\n";
strtree+=" {\r\n";
strtree+=" obj.src=\"ope.gif\"\r\n";
strtree+=" obj.parentelement.parentelement.parentelement.rows[1].style.display=inline;\r\n";
strtree+=" return\r\n";
strtree+=" }\r\n";
strtree+=" if(obj.src.indexof(ope.gif)>0)\r\n";
strtree+=" {\r\n";
strtree+=" obj.src=\"clo.gif\"\r\n";
strtree+=" obj.parentelement.parentelement.parentelement.rows[1].style.display=none;\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" }\r\n";
strtree+="}\r\n";
strtree+="function treepostchange(v1){" ;
strtree+=" document.treechangedform.changedvalue.value=v1;";
strtree+=" document.treechangedform.submit();}\n";
//删除目录
strtree+="function treedeldir(){\n";
strtree+=" objnode=objbeforepop.parentelement.parentelement.parentelement.parentelement;\r\n";
strtree+=" objnodeparent=objnode.parentelement;\r\n";
strtree+=" if(objnode.rows.length>1)\r\n";
strtree+=" {\r\n";
strtree+=" objnode.rows[1].style.display=inline;\r\n";
strtree+=" objnode.rows[0].cells[0].childnodes[0].src=ope.gif\r\n";
strtree+=" objnode.rows[0].cells[1].childnodes[0].src=oimgs[2].src;\r\n";
strtree+=" alert(strtreeundeletedir)\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" treepostchange(delete?+objnode.id);}\n";
strtree+="function treedeldirenabled()\r\n";
strtree+="{\r\n";
strtree+=" objnode=objbeforepop.parentelement.parentelement.parentelement.parentelement;\r\n";
strtree+=" objnodeparent=objnode.parentelement;\r\n";
strtree+=" if(objnode.rows.length>1)\r\n";
strtree+=" {\r\n";
strtree+=" objnode.rows[1].style.display=inline;\r\n";
strtree+=" objnode.rows[0].cells[0].childnodes[0].src=ope.gif\r\n";
strtree+=" objnode.rows[0].cells[1].childnodes[0].src=oimgs[2].src;\r\n";
strtree+=" alert(strtreeundeletedir)\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" treepostchange(del?+objnode.id);";
strtree+=" objnodeparent.removechild(objnode);\r\n";
strtree+=" if(objnodeparent.childnodes.length==0)\r\n";
strtree+=" {\r\n";
strtree+=" //空子目录\r\n";
strtree+=" obj1=objnodeparent.parentelement.parentelement.parentelement\r\n";
strtree+=" obj1.deleterow(1);\r\n";
strtree+="obj1.rows[0].cells[0].childnodes[0].src=cro.gif;\r\n";
strtree+=" obj1p=obj1.parentelement;\r\n";
strtree+=" \r\n";
strtree+=" if(obj1p.childnodes[obj1p.childnodes.length-1]==obj1)\r\n";
strtree+=" {\r\n";
strtree+=" //目录底部\r\n";
strtree+=" obj1.rows[0].cells[0].childnodes[0].src=croend.gif;\r\n";
strtree+=" obj1.rows[0].cells[0].style.cursor=;\r\n";
strtree+=" }\r\n";
strtree+=" return\r\n";
strtree+=" }\r\n";
strtree+=" \r\n";
strtree+=" //设置上层目录类型\r\n";
strtree+=" obj1=objnodeparent.childnodes[objnodeparent.childnodes.length-1];\r\n";
strtree+=" if(obj1.rows.length==2)\r\n";
strtree+=" {\r\n";
strtree+=" obj1.rows[1].cells[0].background=;\r\n";
strtree+=" }\r\n";
strtree+=" else\r\n";
strtree+=" {\r\n";
strtree+=" obj1.rows[0].cells[0].childnodes[0].src=croend.gif;\r\n";
strtree+=" }\r\n";
strtree+="}\r\n";
//重命名
strtree+="//重命名\r\n";
strtree+="var otreeinpt=treeinputparent.childnodes[0];\r\n";
strtree+="var otreeinpt1=treeinputparent.childnodes[1];\r\n";
//查询是否能够rename
strtree+="function treerendir()\r\n";
strtree+="{\r\n";
strtree+=" objren=objbeforepop;\r\n";
strtree+=" treepostchange(rename?+objren.parentelement.parentelement.parentelement.parentelement.id);}\n";
strtree+="function treerendirenabled()\r\n";
strtree+="{\r\n";
strtree+=" objren=objbeforepop;\r\n";
strtree+=" if(objren.parentelement.parentelement.parentelement.parentelement.id==treetable)\n";
strtree+=" return;\n";
strtree+=" otreeinpt.value =objren.innertext;\r\n";
strtree+=" otreeinpt1.value =objren.innertext;\r\n";
strtree+=" objren.innertext=;\r\n";
strtree+=" objren.appendchild (otreeinpt);\r\n";
strtree+=" otreeinpt=objren.childnodes[0];\r\n";
strtree+=" otreeinpt.focus();\r\n";
strtree+="}\r\n";
strtree+="\r\n";
strtree+="var newitem=0;\r\n";
strtree+="var lnewitem=false;\n";
strtree+="function treeadddir()\r\n";
strtree+="{\r\n";
strtree+=" objnode=objbeforepop.parentelement.parentelement.parentelement.parentelement;\r\n";
strtree+=" objbeforepop.style.backgroundcolor=;\r\n";
strtree+=" objbeforepop.style.color=;\r\n";
strtree+=" treecreattable(newitem+newitem,objnode.id);\r\n";
strtree+=" treepostchange(newitem?+objnode.id);}\n";
strtree+="function treeadddirenabled()\r\n";
strtree+="{\r\n";
strtree+=" objnode=objbeforepop.parentelement.parentelement.parentelement.parentelement;\r\n";
strtree+=" objbeforepop.style.backgroundcolor=;\r\n";
strtree+=" objbeforepop.style.color=;\r\n";
strtree+=" treecreattable(newitem+newitem,objnode.id);\r\n";
strtree+=" newitem++;\r\n";
strtree+=" \r\n";
strtree+=" if(objnode.rows.length==1)\r\n";
strtree+=" {\r\n";
strtree+=" //建立下一行\r\n";
strtree+=" otr=objnode.insertrow();\r\n";
strtree+=" for(m=0;m<objnode.rows[0].cells.length-1;m++)\r\n";
strtree+=" {\r\n";
strtree+=" otd=otr.insertcell();\r\n";
strtree+=" }\r\n";
strtree+=" otd.colspan=2\r\n";
strtree+="\r\n";
strtree+=" if(!(objnode.parentelement.childnodes[objnode.parentelement.childnodes.length-1]==objnode))\r\n";
strtree+=" {\r\n";
strtree+=" objnode.rows[1].cells[0].background=lin.gif;\r\n";
strtree+=" }\r\n";
strtree+=" objnode.rows[0].cells[0].innerhtml=\"<img src=ope.gif width=20 height=18>\";\r\n";
strtree+=" objnode.rows[0].cells[0].style.cursor=hand;\r\n";
strtree+=" }\r\n";
strtree+=" else\r\n";
strtree+=" {\r\n";
strtree+=" if(!(objnode.id==treetable)){\n";
strtree+=" objnode.rows[1].style.display=inline;\r\n";
strtree+=" objnode.rows[0].cells[0].innerhtml=\"<img src=ope.gif width=20 height=18>\";\r\n";
strtree+=" if(!(objnode.parentelement.childnodes[objnode.parentelement.childnodes.length-1]==objnode))\r\n";
strtree+=" objnode.childnodes[objnode.childnodes.length-1].rows[1].cells[0].background=lin.gif;\r\n";
strtree+=" }\n}\r\n";
strtree+=" \r\n";
strtree+=" obj1=objnode.rows[1].cells[objnode.rows[1].cells.length-1];\r\n";
strtree+=" if(obj1.childnodes.length>0)\r\n";
strtree+=" {\r\n";
strtree+=" obj=obj1.childnodes[obj1.childnodes.length-1];\r\n";
strtree+=" if(obj.rows[0].cells[0].innerhtml.indexof(croend.gif)>-1)\r\n";
strtree+=" obj.rows[0].cells[0].innerhtml=\"<img src=cro.gif>\";\r\n";
strtree+=" else\r\n";
strtree+=" obj.rows[1].cells[0].background=lin.gif;\r\n";
strtree+=" \r\n";
strtree+=" }\r\n";
strtree+=" obj1.insertadjacentelement(beforeend,otb);\r\n";
strtree+=" objbeforepop=otb.rows[0].cells[2].childnodes[0];\r\n";
strtree+=" lnewitem=true;\n treerendirenabled();\r\n";
strtree+="}\r\n";
strtree+="\r\n";
strtree+="function treecreattable(id,parid)\r\n";
strtree+="{\r\n";
strtree+=" otb=document.createelement (\"table\")\r\n";
strtree+=" otb.width=100%;\r\n";
strtree+=" otb.border=0;\r\n";
strtree+=" otb.cellpadding =0;\r\n";
strtree+=" otb.cellspacing =0;\r\n";
strtree+=" otb.id=id;\r\n";
strtree+=" otb.style.fontsize=12px;\r\n";
strtree+=" \r\n";
strtree+=" otr=otb.insertrow();\r\n";
strtree+=" otr.setattribute(cmd,\"\");\r\n";
strtree+=" \r\n";
strtree+=" otd=otr.insertcell();\r\n";
strtree+=" otd.width=20;\r\n";
strtree+=" otd.height=18;\r\n";
strtree+=" otd.innerhtml=\"<img src=croend.gif width=20 height=18>\"\r\n";
strtree+=" \r\n";
strtree+=" otd=otr.insertcell();\r\n";
strtree+=" otd.width=16;\r\n";
strtree+=" otd.innerhtml=oimgs[1].outerhtml;\r\n";
strtree+=" otd.align=center\r\n";
strtree+=" otd.style.paddingleft=4px;\r\n";
strtree+=" \r\n";
strtree+=" otd=otr.insertcell();\r\n";
strtree+=" otd.width=98%\r\n";
strtree+=" otd.innerhtml=<span>+strtreenewitem +newitem+</span>;\r\n";
strtree+=" otd.style.cursor=hand;\r\n";
strtree+=" otd.style.paddingleft=4px;\r\n";
strtree+="}\r\n";
strtree+="\r\n";
strtree+="//重命名键判断\r\n";
strtree+="function treeinputkey()\r\n";
strtree+="{\r\n";
strtree+=" if(event.keycode==13)\r\n";
strtree+=" {\r\n";
strtree+=" treeinputblur();\r\n";
strtree+=" }\r\n";
strtree+=" if(event.keycode==27)\r\n";
strtree+=" {\r\n";
strtree+=" o1=otreeinpt.parentelement;\r\n";
strtree+=" treeinputparent.appendchild (otreeinpt);\r\n";
strtree+=" o1.innertext =otreeinpt1.value;\r\n";
strtree+=" }\r\n";
strtree+="}\r\n";
strtree+="\r\n";
strtree+="//判断新内容\r\n";
strtree+="function treeinputblur()\r\n";
strtree+="{\r\n";
strtree+=" if(otreeinpt.value==)\r\n";
strtree+=" {\r\n";
strtree+=" alert(名称不能为空);\r\n";
strtree+=" otreeinpt.focus ();\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" o3=otreeinpt.parentelement.parentelement.parentelement.parentelement.parentelement\r\n";
strtree+=" o2=o3.parentelement\r\n";
strtree+=" for(i=0;i<o2.childnodes.length;i++)\r\n";
strtree+=" {\r\n";
strtree+=" //alert(o2.childnodes[i].rows[0].cells[2].innertext)\r\n";
strtree+=" if(o2.childnodes[i].rows[0].cells[2].innertext==otreeinpt.value)\r\n";
strtree+=" {\r\n";
strtree+=" alert(名称重复);\r\n";
strtree+=" otreeinpt.focus ();\r\n";
strtree+=" return;\r\n";
strtree+=" }\r\n";
strtree+=" }\r\n";
strtree+="if(!lnewitem){";
strtree+="treepostchange(ren?+o3.id+?+otreeinpt.value);}\n";
strtree+="else{\n";
strtree+="treepostchange(new?+o3.id+?+otreeinpt.value+?+o2.parentelement.parentelement.parentelement.id);lnewitem=false;}\n";
strtree+=" o1=otreeinpt.parentelement;\r\n";
strtree+=" treeinputparent.appendchild (otreeinpt);\r\n";
strtree+=" o1.innertext =otreeinpt.value;\r\n";
strtree+="}\r\n</script>";
return strtree;
}
private void createimages()
{
string fp=this.parent.page.server.mappath(".")+"\\";
string strope="r0lgodlhfaasajecaaaaaicagp///waaach5baeaaaialaaaaaauabiaaainli+pk8epy5muhotxdio/j4clajcja6tp5ltnumgw/gvzhxf5rj8fads=";
saveimage(strope,fp+"ope.gif");
string strcro ="r0lgodlhfaasaiabaicagp///yh5baeaaaealaaaaaauabiaaaicji+pg8apy5o0uorfzry5p4edti1cawjosq1iaqa7";
saveimage(strcro,fp+"cro.gif");
string strcroend="r0lgodlhfaasaiabaicagp///yh5baeaaaealaaaaaauabiaaaiyji+pg8apy5o0uorfzry5p4hdsjbmiuofads=";
saveimage(strcroend,fp+"croend.gif");
string strlin="r0lgodlhfaasaiabaicagp///yh5baeaaaealaaaaaauabiaaaiyji+pg8apy5o0uorfzrzt3n1gjo6wguifads=";
saveimage(strlin,fp+"lin.gif");
string strclo="r0lgodlhfaasajecaaaaaicagp///waaach5baeaaaialaaaaaauabiaaaiqli+pk8epy5muhotxdio/dxwea4qbaktp5lrjaywlpfnzlmxv3vf+/ygaads=";
saveimage(strclo,fp+"clo.gif");
}
private void saveimage(string strfileb64,string strfilename)
{
filestream ofs=new filestream (strfilename,filemode.create);
byte[] bdes=convert.frombase64string (strfileb64);
ofs.write(bdes,0,bdes.length );
ofs.close ();
}
/// <summary>
/// 生成目录移动脚本
/// </summary>
/// <returns></returns>
private string tabletreemove()
{
return "var lmousedown=false;\n"
+"var createspan=;\n"
+"var redobj=;\n"
+"var selectednode=\n"
+"function tabletreemv()\n"
+"{\n"
+" if(lmousedown==false)\n"
+" return;\n"
+" createspan.style.left=event.x;\n"
+" createspan.style.top=event.y;\n"
+" if(event.srcelement.tagname==span && event.srcelement.style.cursor==hand)\n"
+" {\n"
+" event.srcelement.style.color=red;\n"
+" if(redobj!= && redobj!=event.srcelement && redobj.style.color==red )\n"
+" {\n"
+" redobj.style.color=;\n"
+" \n"
+" }\n"
+" redobj=event.srcelement;\n"
+" \n"
+" }\n"
+"}\n"
+"function tabletreemu()\n"
+"{\n"
+" if(lmousedown==false)\n"
+" return;\n"
+" lmousedown=false;\n"
+" if(createspan !=)\n"
+" {\n"
+" document.body.removechild(createspan);\n"
+" createspan=;\n"
+" }\n"
+" if(event.srcelement.tagname==span && event.srcelement.style.cursor==hand)\n"
+" {\n"
+" if(event.srcelement.parentelement.parentelement.parentelement.parentelement.rows.length==1)\n"
+" {\n"
+" tr=event.srcelement.parentelement.parentelement.parentelement.parentelement.insertrow();\n"
+" tr.insertcell();\n"
+" td=tr.insertcell();td.colspan=2;\n"
+" }\n"
+" event.srcelement.parentelement.parentelement.parentelement.parentelement.rows[1].cells[1].appendchild(selectednode);\n"
+" }\n"
+"}\n"
+"function tabletreemd()\n"
+"{\n"
+" if(event.srcelement.tagname==span && event.srcelement.style.cursor==hand)\n"
+" {\n"
+" lmousedown=true;\n"
+" //event.srcelement.innerhtml=aaa;\n"
+" selectednode=event.srcelement.parentelement.parentelement.parentelement.parentelement;\n"
+" tabletreecreateobject();\n"
+" }\n"
+"}\n"
+"function tabletreecreateobject()\n"
+"{\n"
+" o1=document.createelement(span);\n"
+" o1.innertext=selectednode.innertext;\n"
+" //\n"
+" //o1.style.position=absloute;\n"
+" o1.style.top=event.y;\n"
+" o1.style.left =event.x;\n"
+" document.body.appendchild(o1);\n"
+" o1.style.position=absolute;\n"
+" createspan=o1;\n"
+"}\n";
}
}
}
