即在页面上,可以通过对树的每个节点的复选框的打钩与否来设置用户权限。
微软的不要.
或者有谁做过项目有好的树,在这里,或发到

解决方案 »

  1.   

    http://sz.luohuedu.net/xml/tree/tree.asp?type=checkbox
      

  2.   

    http://www.gotdotnet.com/team/webcontrols/treeview/tree2.aspxhttp://www.gotdotnet.com/team/webcontrols/treeview/tree.aspx
    还有这个
    http://www.freevbcode.com/ShowCode.asp?ID=652HOWTO: Populate a Treeview Control with an XML Filehttp://support.microsoft.com/default.aspx?scid=kb;EN-US;q244954
    http://msdn.microsoft.com/workshop/webcontrols/behaviors/library/treeview/treeview.asphttp://dev.csdn.net/article/28/28499.shtm
    http://dev.csdn.net/article/28/28502.shtmhttp://aspnet.4guysfromrolla.com/articles/051403-1.aspx
      

  3.   

    to  Proyang(小过) :ms的树会在wwwroot下生成一个文件,不太好用!
      

  4.   

    或者有谁有用过阿信的selecttree,但是这个树没办法把选中复选框的节点保存到数据库,
    因为只要页面一回发,树就会重新生成,那么所有的节点状态都会变成初始的未选中复选框的状态。
      

  5.   

    treeview不好用,
    1:有颜色很讨厌。
    2:会在wwwroot下生成额外的文件夹
      

  6.   

    多谢ajex(仙桃人) ,但是这个功能不是我想要的
      

  7.   

    http://dev.csdn.net/article/28/28499.shtm
    http://dev.csdn.net/article/28/28502.shtm
      

  8.   

    用JS
    <script language="javascript">
    <!--
    function switchstatus(obj,imgobj){  
          if (document.all(obj).style.display=='none'){
              document.all(obj).style.display='block'; 
              document.all(imgobj).src='../image/menu_open.gif';                           
          }else{
              document.all(obj).style.display='none';          
              document.all(imgobj).src='../image/menu_close.gif';                           
          }                        
      }
    -->
    </script>
    <script language="vbscript">
    <!--
    sub menuclick(obj)
    'if not cflag then
    ' msgbox false
    ' exit sub
    'end if
    dim m,flag
    for each m in  document.formSV.elements
    if m.name=obj then
    flag=m.checked
    exit for
    end if
    next
    for each m in  document.formSV.elements
    if left(m.name,5)="CHECK" then
    if m.value=right(obj,2) then
    m.checked=flag    
    end if  
    end if  
    next
    end sub
    -->
    'formsv.CHECK0101.checked=true
    'formsv.MENUCHECK001.checked=true
    </script>
    上面这段放在ASPX页面上,
    在要显示出树的地方放个label控件,然后在程序里面动态的写HTML代码进去,还可以动态的加的.
    如果要存取是否选项定时可以这样Request.Form("check" & i)
    以下是一段我写的个函数,自己慢慢看
    Private Sub qxshow()
            Dim qxlb As String
            Dim fid, mid, fname, mname, sqlstr As String
            Dim yn, kk As Integer
            qxlb = Label_qxlb.Text
            qxid = qxlb.Split(",")
            yn = -1
            kk = -1
            str = "<table width='98%' align='center' border='0' cellpadding='0' cellspacing='0'>"
            str = str + Chr(13) + Chr(10)
            str = str + "<tr class=listtitleborder>"
            str = str + Chr(13) + Chr(10)
            str = str + "<td  align='left' colspan='2'> <nobr>权限设置 </nobr> </td></tr>"
            str = str + Chr(13) + Chr(10)
            str = str + "<tr> <td align='left' valign='top'>"
            str = str + Chr(13) + Chr(10)
            str = str + "<table width='100%' class='tableframe' align='center' border='0' cellpadding='0' cellspacing='0' id='qxmain' name='qxmain' style='display:block' style='Margin:0px 0px 0px 0px'>"
            str = str + Chr(13) + Chr(10)
            '挑选出需要设置权限的主菜单
            sqlstr = "SELECT FromMenu.id, FromMenu.upid, FromMenu.name,MainMenu.name AS upname" & _
    " FROM FromMenu INNER JOIN" & _
         " MainMenu ON FromMenu.upid = MainMenu.id" & _
    " ORDER BY FromMenu.upid"
            Dim conn As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connstr"))
            Dim objcmd As SqlCommand = New SqlCommand(sqlstr, conn)
            Dim objreader As SqlDataReader
            Try
                objcmd.Connection.Open()
                objreader = objcmd.ExecuteReader
                Do While objreader.Read
                    fid = objreader.GetInt32(0).ToString
                    mid = objreader.GetInt32(1).ToString
                    fname = objreader.GetSqlString(2).ToString
                    mname = objreader.GetSqlString(3).ToString
                    If mid <> yn Then
                        yn = mid
                        If kk = -1 Then
                            maint(fid, mid, fname, mname)
                            kk = 1
                        Else
                            mainw()
                            maint(fid, mid, fname, mname)
                            kk = 1
                        End If
                        Froms(fid, mid, fname, mname)
                    Else
                        Froms(fid, mid, fname, mname)
                    End If
                Loop
                mainw()
                str = str + " </table>  "
                objcmd.Connection.Close()
            Catch ex As SqlException
                Response.Write("error retrieving data.")
            End Try
            Label1.Text = str
            Label_qxstr.Text = qxstr
        End Sub