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">