/// <summary> /// 按查询条件输出结果集 /// </summary> /// <param name="sb"></param> /// <returns></returns> private DataTable BuildStrategy(SubjectStrategyBuilder sb) { try { string sql = sb.BuildMainQueryString(); QueryAgent qa = new QueryAgent(); EntityData entity = qa.FillEntityData("Subject", sql); qa.Dispose(); return(entity.CurrentTable); } catch (Exception ex) { throw ex; } }
protected void Page_Load(object sender, System.EventArgs e) { string m_strGetType = Request.QueryString["GetType"] + ""; //数据分类 string m_strLayer = Request.QueryString["Layer"] + ""; //需要取的层数 string m_strNodeId = Request.QueryString["NodeId"] + ""; //父节点编号 string[] m_Layers = (Request.QueryString["Layers"] + "").Split('.'); //定点展开的序列 string m_strSelectedLayer = Request.QueryString["SelectedLayer"] + ""; //定层展开的深度 string m_strRootId = Request.QueryString["RootId"] + ""; //数据分类 string m_SubjectSetCode = Request["SubjectSetCode"] + ""; DataTable m_Table = new DataTable("Subject"); m_Table.Columns.Add("SubjectCode"); m_Table.Columns.Add("SubjectSetCode"); m_Table.Columns.Add("SubjectName"); m_Table.Columns.Add("SubjectFullName"); m_Table.Columns.Add("IsDebit"); m_Table.Columns.Add("IsCrebit"); m_Table.Columns.Add("Layer"); m_Table.Columns.Add("ChildNodesCount"); m_Table.Columns.Add("ShowChildNodes"); m_Table.Columns.Add("DisplayHref"); // 是否显示链接 m_Table.Columns.Add("DisplaySpan"); // 是否显示文字 // EntityData m_Subject=SubjectDAO.GetSubjectBySubjectSet(m_SubjectSetCode); // DataTable m_DataTable=m_Subject.Tables["Subject"]; //查询条件 SubjectStrategyBuilder sb = new SubjectStrategyBuilder(); sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectSetCode, m_SubjectSetCode)); if (m_strGetType == "") { #region 取第一层 DataView m_DV; if (m_strRootId == "") { sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1")); // m_DV = new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows); } else { sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectCode, m_strRootId)); // m_DV = new DataView(m_DataTable,"SubjectCode='" + m_strRootId + "'","",DataViewRowState.CurrentRows); } DataTable m_DataTable = BuildStrategy(sb); m_DV = new DataView(m_DataTable); foreach (DataRowView m_Row in m_DV) { DataRow m_NewRow = m_Table.NewRow(); this.FillRow(ref m_NewRow, m_Row); m_Table.Rows.Add(m_NewRow); } #endregion } else if (m_strGetType == "ChildNodes") { #region 取某节点子目录 // DataView m_DV=new DataView(m_DataTable,"layer='"+m_strLayer+"' and SubjectCode like '"+m_strNodeId+"%'","",DataViewRowState.CurrentRows); sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, m_strLayer)); sb.AddStrategy(new Strategy(SubjectStrategyName.ParentCode, m_strNodeId)); DataTable m_DataTable = BuildStrategy(sb); DataView m_DV = new DataView(m_DataTable); foreach (DataRowView m_Row in m_DV) { DataRow m_NewRow = m_Table.NewRow(); this.FillRow(ref m_NewRow, m_Row); m_Table.Rows.Add(m_NewRow); } #endregion } else if (m_strGetType == "SelectLayer") { #region 取制定层数结果 // DataView m_DV=new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows); sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1")); DataTable m_DataTable = BuildStrategy(sb); DataView m_DV = new DataView(m_DataTable); foreach (DataRowView m_Row in m_DV) { DataRow m_NewRow = m_Table.NewRow(); this.FillRow(ref m_NewRow, m_Row); m_Table.Rows.Add(m_NewRow); if (int.Parse(m_strSelectedLayer) > 1) { m_NewRow["ShowChildNodes"] = "1"; this.FillSelectedLayerData(ref m_Table, m_SubjectSetCode, m_Row["SubjectCode"].ToString(), 2, int.Parse(m_strSelectedLayer), m_DataTable); } } #endregion } else if (m_strGetType == "All") { #region 取所有结果 // DataView m_DV=new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows); sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1")); DataTable m_DataTable = BuildStrategy(sb); DataView m_DV = new DataView(m_DataTable); foreach (DataRowView m_Row in m_DV) { DataRow m_NewRow = m_Table.NewRow(); this.FillRow(ref m_NewRow, m_Row); m_Table.Rows.Add(m_NewRow); if (int.Parse(m_NewRow["ChildNodesCount"].ToString()) > 0) { m_NewRow["ShowChildNodes"] = "1"; this.FillAllData(ref m_Table, m_SubjectSetCode, m_Row["SubjectCode"].ToString(), 2, m_DataTable); } } #endregion } else if (m_strGetType == "SingleNode") { #region 单个节点 // DataView m_DV=new DataView(m_DataTable,"SubjectCode='"+Request.QueryString["NodeId"]+""+"'","",DataViewRowState.CurrentRows); sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectCode, m_strNodeId)); DataTable m_DataTable = BuildStrategy(sb); DataView m_DV = new DataView(m_DataTable); foreach (DataRowView m_Row in m_DV) { DataRow m_NewRow = m_Table.NewRow(); this.FillRow(ref m_NewRow, m_Row); m_Table.Rows.Add(m_NewRow); } #endregion } Response.Write(RmsPM.WebControls.TreeView.XmlTree.GetDataToXmlString(m_Table)); Response.End(); }