public string Frame { set { _Frame=value; } get { return _Frame; } } public string Action { set { _Action=value; } get { return _Action; } } public string Type { set { _TypeName=value; } get { return _TypeName; } } public string URL { set { _URL=value; } get { return _URL; } } public string MouseOverBG { set { _MouseOverBG=value; } get { return _MouseOverBG; } } public string MouseOutBG { set { _MouseOutBG=value; } get { return _MouseOutBG; } } public string MouseOnClickBG { set { _MouseOnClickBG=value; } get { return _MouseOnClickBG; } } protected override void CreateChildControls() { string _TreeString="";//目录结构字符串 string _CurrentClass;//当前目录代码 int _CurrentClassDiv;//当前目录所在级别 string _LastClass="";//上级目录代码 int _LastClassDiv=0;//上级目录所在级别 _TreeString+="<script language=\"javascript\">";
{
protected string _TypeName;//目录树类别
protected string _URL="";//后台处理程序
protected string _Action="List";//程序处理动作
protected string _Frame="Content";
protected string _MouseOverBG="#AACCEE";//鼠标经过时的背景色
protected string _MouseOutBG="";//鼠标离开时的背景色
protected string _MouseOnClickBG="#88AACC";//鼠标单击时的背景色
public string Frame
{
set
{
_Frame=value;
}
get
{
return _Frame;
}
}
public string Action
{
set
{
_Action=value;
}
get
{
return _Action;
}
}
public string Type
{
set
{
_TypeName=value;
}
get
{
return _TypeName;
}
}
public string URL
{
set
{
_URL=value;
}
get
{
return _URL;
}
}
public string MouseOverBG
{
set
{
_MouseOverBG=value;
}
get
{
return _MouseOverBG;
}
}
public string MouseOutBG
{
set
{
_MouseOutBG=value;
}
get
{
return _MouseOutBG;
}
}
public string MouseOnClickBG
{
set
{
_MouseOnClickBG=value;
}
get
{
return _MouseOnClickBG;
}
} protected override void CreateChildControls()
{
string _TreeString="";//目录结构字符串
string _CurrentClass;//当前目录代码
int _CurrentClassDiv;//当前目录所在级别
string _LastClass="";//上级目录代码
int _LastClassDiv=0;//上级目录所在级别 _TreeString+="<script language=\"javascript\">";
_TreeString+="function js"+this.Type+"TreeShow(CurrentClass,TypeName){";
//_TreeString+="alert(CurrentClass);";
_TreeString+="str=document.all(TypeName+\"img\"+CurrentClass).src;";
_TreeString+="str=str.substr(str.length-11);";
//_TreeString+="alert(str);";
_TreeString+="if(str==\"dot_end.gif\"){";
//_TreeString+="alert(\"stop\");";
_TreeString+="return false;";
_TreeString+="}";
_TreeString+="if(document.all(TypeName+\"c\"+CurrentClass).style.display==\"\"){";
_TreeString+="document.all(TypeName+\"c\"+CurrentClass).style.display=\"none\";";
_TreeString+="document.all(TypeName+\"img\"+CurrentClass).src=\"../Images/dot_close.gif\";";
_TreeString+="}else{";
_TreeString+="document.all(TypeName+\"c\"+CurrentClass).style.display=\"\";";
_TreeString+="document.all(TypeName+\"img\"+CurrentClass).src=\"../Images/dot_open.gif\";";
_TreeString+="}";
_TreeString+="}";
_TreeString+="function js"+this.Type+"MouseOver(Cell){";
_TreeString+="if(Cell.id!=document.all(\""+this.Type+"ClickCell\").value){";
_TreeString+="Cell.bgColor=\""+this.MouseOverBG+"\";";
_TreeString+="}";
_TreeString+="}";
_TreeString+="function js"+this.Type+"MouseOut(Cell){";
_TreeString+="if(Cell.id!=document.all(\""+this.Type+"ClickCell\").value){";
_TreeString+="Cell.bgColor=\""+this.MouseOutBG+"\";";
_TreeString+="}";
_TreeString+="}"; _TreeString+="function js"+this.Type+"MouseOnClick(Cell,Class){";
_TreeString+="if(document.all(\""+this.Type+"ClickCell\").value!=\"\"){";
_TreeString+="document.all(document.all(\""+this.Type+"ClickCell\").value).bgColor=\""+this.MouseOutBG+"\";";
_TreeString+="}";
_TreeString+="Cell.bgColor=\""+this.MouseOnClickBG+"\";";
_TreeString+="document.all(\""+this.Type+"ClickCell\").value=Cell.id;";
if(this.Action=="List")
{
_TreeString+="parent."+this.Frame+".location.href=\""+this.URL+"?Class=\"+Class;";
}
_TreeString+="}"; _TreeString+="function js"+this.Type+"ClassShow(URL,ClassID){";
_TreeString+="key=Math.ceil(Math.random()*10000000000000000);";
//_TreeString+="alert(URL+\"&&\"+ClassID);";
_TreeString+="document.all(\""+this.Type+"iFClass\").src=URL+\"?ClassID=\"+ClassID+\"&key=\"+key;";
_TreeString+="}";
_TreeString+="</script>"; _TreeString+="<input type=\"hidden\" name=\""+this.Type+"ClickCell\">";//记录上一次点击内容,在本次点击时将其外观等状态还原
_TreeString+="<iframe width=\"0\" height=\"0\" id=\""+this.Type+"iFClass\"></iframe>";//以其获取数据,使页面只在局部刷新 _TreeString+="<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">"; //结构树的处理
string[] paras={"@ClassType"};
string[] values={this.Type}; DB.Mapping dm=new DB.Mapping(); dm.HFEnable=false;
dm.Paras=paras;
dm.Values=values; SqlDataReader sdr=dm.sdrExecute("ClassTree");
while(sdr.Read())
{
_CurrentClass=(string) sdr["Class"];
_CurrentClassDiv=_CurrentClass.Length/4;
if(_LastClassDiv>=_CurrentClassDiv)
{
_TreeString+="<tr><td><script language=\"javascript\">document.all(\""+this.Type+"img"+_LastClass+"\").src=\"../Images/dot_end.gif\";</script>";
}
for(int i=0;i<=(_LastClassDiv-_CurrentClassDiv);i++)
{
_TreeString+="</td></tr></table>";
}
if(_LastClassDiv>=_CurrentClassDiv)
{
_TreeString+="</td></tr>";
} _TreeString+="<tr id=\""+this.Type+"f"+_CurrentClass+"\">";
_TreeString+="<td height=\"20\" id=\""+this.Type+"TdCell"+_CurrentClass+"\" onclick=\"javascript:js"+this.Type+"MouseOnClick(this,'"+_CurrentClass+"');\"";
if(this.Action=="Manage")
{
_TreeString+=" ondblclick=\"javascript:js"+this.Type+"ClassShow('"+this.URL+"','"+sdr["ClassID"]+"');\"";
}
_TreeString+=" onmouseover=\"javascript:js"+this.Type+"MouseOver(this);\" onmouseout=\"javascript:js"+this.Type+"MouseOut(this);\" style=\"cursor:hand;padding-left:"+(_CurrentClassDiv-1)*20+"px;\">";
_TreeString+="<img id=\""+this.Type+"img"+_CurrentClass+"\"";
if(_CurrentClassDiv==1)
{
_TreeString+=" src=\"../Images/dot_open.gif\"";
}
else
{
_TreeString+=" src=\"../Images/dot_close.gif\"";
}
_TreeString+=" onclick=\"javascript:js"+this.Type+"TreeShow('"+_CurrentClass+"','"+this.Type+"');\">";
_TreeString+=" ";
_TreeString+=sdr["ClassName"];
_TreeString+="</td>";
_TreeString+="</tr>";
//本目录下的目录
_TreeString+="<tr id=\""+this.Type+"c"+_CurrentClass+"\"";
if(_CurrentClassDiv==1)
{
_TreeString+=" style=\"display:'';\">";
}
else
{
_TreeString+=" style=\"display:none;\">";
}
_TreeString+="<td>";
_TreeString+="<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">";
_LastClass=_CurrentClass;
_LastClassDiv=_CurrentClassDiv;
}
if(_LastClassDiv!=0)
{
_TreeString+="<tr><td><script language=\"javascript\">document.all(\""+this.Type+"img"+_LastClass+"\").src=\"../Images/dot_end.gif\";</script>";
}
for(int i=0;i<_LastClassDiv;i++)
{
_TreeString+="</td></tr></table>";
}
_TreeString+="</td></tr></table>"; this.Controls.Add(new LiteralControl(_TreeString));
}
}跟数据库内的结构有关系,比较复杂