<% 
dim  msql,data1(),data2(),data3(),data4(),data5(),i,cmsql,menum,j,m,n,DATA3_H  
dim  cmname,cmimage,cpteple,a,x,k
     
  msql="select count(*) total_rec from oa_menu"
set rstconl = server.createobject("adodb.recordset")
    rstconl.open msql,cnndb
    a=rstconl("total_rec")
    rstconl.close //a中存放的是菜单大类的数量
    
  msql="select * from oa_menu order by menu_number"
set rstconl = server.createobject("adodb.recordset")
    rstconl.open msql,cnndb
i=0

redim data1(a),data2(a)
do until rstconl.eof
   data1(i)=rstconl("MENU_NUMBER")          //data1数组保存menu_number值
   data2(i)=rstconl("MENU_NAME") //data2数组保存menu_name    i=i+1
   
   rstconl.movenext
loop 
     rstconl.close
set rstconl=nothing

 response.write "<SCRIPT  LANGUAGE="%>"<%response.write "JAVASCRIPT" %>"><%   
 response.write "if (document.all){"
   
set rstcon2 = server.createobject("adodb.recordset")
   For M = 0 to cint(a)-1   
        n=m+1  
      cmsql="select COUNT(*) TOTAL_REC from oa_childmenu where menu_number='"&data1(m)&"'"
      rstcon2.open cmsql,cnndb //Data3_H存放的是菜单菜单子类的纪录数
      DATA3_H=rstcon2("TOTAL_REC")
      rstcon2.Close       cmsql="select * from oa_childmenu where menu_number='"&data1(m)&"'"
      rstcon2.open cmsql,cnndb   response.write " OutBarFolder"&n&"=new Array(100);"   //OutBarFolderN是一个100各元素的数组
  response.write " OutBarFolder"&n&"[0]="%>"<%response.write data2(m) %>";<% //OutBarFolderN[0]存放菜单大类的值
  redim data3(DATA3_H),data4(DATA3_H),data5(DATA3_H)    //三个数组的大小都为子菜单的数量
    j=0
do until rstcon2.eof
     
 data3(j)=rstcon2("CHILDMENU_NAME")
 data4(j)=rstcon2("CHILDMENU_IMAGE")
 data5(j)=rstcon2("PABE_TEMPLET")  if x<4 then
  x=j+1
 elseif k>0 then
  x=k+1
 else 
  x=1
 end if 
 
       response.write " OutBarFolder"&n&"["&x&"]="%>"<%response.write data4(j) %>";<%
      x=x+1
   response.write " OutBarFolder"&n&"["&x&"]="%>"<%response.write data3(j) %>";<%
  x=x+1
       response.write " OutBarFolder"&n&"["&x&"]="%>"<%response.write data5(j) %>";<%
      x=x+1
       response.write " OutBarFolder"&n&"["&x&"]="%>"<%response.write "parent.content"%>";<%
       k=x
       if k>=cint(DATA3_H)*4 then
          k=0
       end if
         j=j+1
     rstcon2.movenext
 loop 
 rstcon2.close
  Next 
 set rstcon2=nothing
    response.write "document.write('<script src="%>"<%response.write "js/outbar.js"%>"<% response.write " designtimesp=13246><\/script>" %>
   <%
    response.Write "')}"
    response.write "</SCRIPT>"
 %>

解决方案 »

  1.   

    ASP代码在ASP.NET中基本上都能正常运行啊,没必要转。要转的话,就要变成控件封装,那就不是那么简单。
      

  2.   

    大致是这样的,请调试
        string msql="select count(*) total_rec from oa_menu";
            SqlConnection conn=new SqlConnection("你的数据库连接字符串");
            SqlCommand comm=new SqlCommand(msql,conn);
            conn.Open();
            int a=(int)comm.ExecuteScalar();
            conn.Close();
            msql="select * from oa_menu order by menu_number";
            DataSet ds = new DataSet();        
            SqlDataAdapter myCommand = new SqlDataAdapter(msql,conn);
            myCommand.Fill(ds);
        Response.Write("<script>if(document.all{");
            int n;
            string cmsql;
            for(int m=0;m<a-1;m++)
            { 
                n=m+1;
                cmsql="select COUNT(*) TOTAL_REC from oa_childmenu where menu_number="+ds.Tables[0].Rows[a]["MENU_NUMBER"].ToString();
                conn.Open();
                comm=new SqlCommand(cmsql,conn);
                int DATA3_H=(int)comm.ExecuteScalar();
                conn.Close();
                DataSet ds2=new DataSet();
                cmsql="select * from oa_childmenu where menu_number="+ds.Tables[0].Rows[a]["MENU_NUMBER"].ToString();
                myCommand =new SqlDataAdapter(cmsql,conn);
                myCommand.Fill(ds2);  
                Response.Write("OutBarFolder"+n+"=new Array(100);");
                Response.Write("OubBarFolder"+n+"[0]=%>"+ds.Tables[0].Rows[a]["MENU_NAME"].ToString());
            int x=0,k=0;
                for(int j=0;j<DATA3_H;j++)
                {
                    if(x<4)
                      x++;
                    else if(k>0)
                      x=k+1;
                    else
                      x=1;
                    Response.Write("OubBarFolder"+n+"["+x+"]="+ds2.Tables[0].Rows[j]["CHILDMENU_IMAGE"].ToString());
                    x++;
                    Response.Write("OubBarFolder"+n+"["+x+"]="+ds2.Tables[0].Rows[j]["CHILDMENU_NAME"].ToString());
                    x++;
                    Response.Write("OubBarFolder"+n+"["+x+"]="+ds2.Tables[0].Rows[j]["PABE_TEMPLET"].ToString());
                    x++;
                    Response.Write("OubBarFolder"+n+"["+x+"]="+"parent.content");//parent.content???
                    k=x;
                    if(k>=DATA3_H*4)
                    k=0;
                }
             }
            Response.Write("document.write('<script src=js/outbar.js designtimesp=13246</script>')}</script>");
      

  3.   

    翻译是用asp的方式来写asp.NET,何必呢?