asp.Net:easyui treeコントロールurlデータのロード

4489 ワード

easyui treeコントロールurlデータのロード
表を作る

CREATE TABLE [dbo].[OrganizationStructure]( [Id] [int] IDENTITY(1,1) NOT NULL, [OwnerId] [int] NOT NULL, [Name] [nvarchar](100) NOT NULL, [Type] [int] NULL, CONSTRAINT [PK_OrganizationStructure] PRIMARY KEY CLUSTERED ( [Name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO 

バックグラウンド
private string GetOrganizationStructureText()
{
            StringBuilder sb = new StringBuilder();
            sb.Append("[");
            GetChildrenText(0, ref sb);
            sb.Append("]");
            return sb.ToString();
}
private void GetChildrenText(int id,ref StringBuilder sb)
{
            using(TrainingSystemDataContext dc=new TrainingSystemDataContext(DBConn.GetConn()))
            {
                var query = from s in dc.OrganizationStructure where s.OwnerId == id select s;
                int querycount = query.Count();
                int i = 0;
                foreach (var s in query)
                {
                    sb.AppendLine("{" + string.Format("\"id\":{0},\"text\":\"{1}\"", s.Id, s.Name));
                    int count = DBCommand.QueryInteger("SELECT COUNT(*) FROM [OrganizationStructure] WHERE [OwnerId]=" + s.Id);
                    if (count > 0)
                    {
                        sb.AppendLine(",\"children\":[");
                        GetChildrenText(s.Id,ref sb);
                        sb.AppendLine("]");
                    }
                    sb.AppendLine("}");
                    ++i;
                    if (i != querycount)
                        sb.Append(",");
                }
            }
        }

フロント
<ul id="tt" class="easyui-tree"
            url="data.aspx">