using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EVTBT.DAL;
using EVTBT.Core;
using System.Data;
using System.Text;
namespace Web
{
public partial class WebForm1 : System.Web.UI.Page
{
static int country = -1;
static int product = -1;
public string productName;
static string result;
static StringBuilder divresult
= new StringBuilder
();
protected void Page_Load(object sender, EventArgs e)
{
try
{
divresult.Clear();
country = Convert.ToInt16(Request.QueryString["country"]);
product = Convert.ToInt16(Request.QueryString["product"]);
}
catch
{
}
if (country != -1 || product != -1)
{
//获取产品表
DataTable table = GetProductTable();
DataSet ds
= new DataSet
();
//拷贝表格准备处理
ds.Tables.Add(table.Copy());
//表格加入关系
ds.Relations.Add("TreeRelation", ds.Tables[0].Columns["Id"], ds.Tables[0].Columns["ParentId"]);
//选择因子条目
DataRow[] top = ds.Tables[0].Select("ID='" + product + "'");
//判断因子是否为最底层因子
judgement(top[0]);
if (divresult.ToString() == null || divresult.ToString()=="")
{
productName = Common.NoPager2("adm_factorManagement", "", "sort_name", "", "ID='" + product + "'AND Valided=1").Tables[0].Rows[0]["sort_name"].ToString();
}
else
{
header.InnerHtml = "";
compareCenter.InnerHtml = divresult.ToString();
}
}
else
{
}
}
/// <summary>
/// 最底层因子输出HTML
/// </summary>
/// <param name="row"></param>
private void HTMLADD(DataRow row)
{
string PN = row["sort_name"].ToString();
DataTable DTfactor = Common.NoPager2("adm_Factor", "", "ID,ProductID,FacCName", "", "ProductID='" + row["ID"].ToString() + "'AND IsPublic=1").Tables[0];
if (DTfactor.Rows.Count > 0)
{
divresult.Append("<div class=\"comp_section no_border no_m_b clearfix\"> <div class=\"comparison_row block head list_head clearfix\" runat=\"server\" id=\"compareTop\"> <div style=\"width: 979px;\"> <div class=\"col-xs-4 first\" style=\"width: 195.8px;\">" + PN + "</div> <div class=\"col-xs-4\" style=\"width: 195.8px;\"> <div> <a >标准</a><i class=\"arrows\"></i> </div> </div> <div class=\"col-xs-4\" style=\"width: 195.8px;\"> <div> <a >法规</a><i class=\"arrows\"></i> </div> </div> <div class=\"col-xs-4\" style=\"width: 195.8px;\"> <div> <a >认证</a><i class=\"arrows\"></i> </div> </div> </div></div></div><div class=\"comp_section clearfix\"> </div>");
DataTable
[,
] factor
= new DataTable
[DTfactor
.Rows.Count,
3];
for (int i = 0; i < DTfactor.Rows.Count; i++)
{
factor[i, 0] = Common.NoPager2("adm_Standard", "", "ID,StaNumber,StaCName AS CName,CountryID", "", "CountryID='" + country + "'AND FactorID='" + DTfactor.Rows[i]["ID"].ToString() + "'AND IsPublic=1").Tables[0];
factor[i, 1] = Common.NoPager2("adm_Regulation", "", "ID,RegNumber,RegCName AS CName,RegEName,CountryID", "", "CountryID='" + country + "'AND FactorID='" + DTfactor.Rows[i]["ID"].ToString() + "'AND IsPublic=1").Tables[0];
factor[i, 2] = Common.NoPager2("adm_Certification", "", "ID,CerName AS CName,CerIntroduction,CerOrganization,CountryID", "", "CountryID='" + country + "'AND FactorID='" + DTfactor.Rows[i]["ID"].ToString() + "'AND IsPublic=1").Tables[0];
}
for (int i = 0; i < DTfactor.Rows.Count; i++)
{
divresult.Append("<div class=\"comp_section clearfix\" > <div class=\"clearfix nav_btn\"> <div><div class=\"col-xs-2 name\">" + DTfactor.Rows[i]["FacCName"].ToString() + "</div> <div class=\"col-xs-9 action\"> <div class=\"pull-right\"><a href=\"#\" style=\"width: 31px; height: 31px;\"><i>-</i></a></div></div> </div> </div> <div class=\"comparison_row block centered clearfix\"> <div class=\"col-xs-12 mobile_title visible-xs\" style=\"width: 979px;\"> 111</div><div style=\"width: 979px;\"><div class=\"col-xs-4 first\" style=\"width: 195.8px;\">" + DTfactor.Rows[i]["FacCName"].ToString() + "</div>");
for (int j = 0; j < 3; j++)
{
divresult.Append("<div class=\"col-xs-4\" style=\"width: 195.8px;\">");
foreach (DataRow dr in factor[i, j].Rows)
{
switch (j)
{
case 0: divresult.Append("<a class=\"fancybox1 fancybox.iframe\" href=\"resultdetail1.aspx?ID=" + dr["ID"].ToString() + "\"><i>" + dr["CName"].ToString() + "</a></i><br>"); break;
case 1: divresult.Append("<a class=\"fancybox2 fancybox.iframe\" href=\"resultdetail2.aspx?ID=" + dr["ID"].ToString() + "\"><i>" + dr["CName"].ToString() + "</a></i><br>"); break;
case 2: divresult.Append("<a class=\"fancybox3 fancybox.iframe\" href=\"resultdetail3.aspx?ID=" + dr["ID"].ToString() + "\"><i>" + dr["CName"].ToString() + "</a></i><br>"); break;
}
}
divresult.Append("</div>");
}
divresult.Append("</div></div></div>");
}
}
}
/// <summary>
/// 判断因子是够为最底层因子
/// </summary>
/// <param name="DR">因子DataRow</param>
private void judgement(DataRow DR)
{
DataRow[] rows = DR.GetChildRows("TreeRelation");
//不是最底层
if (rows.Length > 0)
{
//遍历非最底层因子
ResolveSubTree(DR);
}
//最底层因子
else
{
//最底层因子数据输出
HTMLADD(DR);
}
}
/// <summary>
/// 非最底层因子遍历
/// </summary>
/// <param name="dataRow"></param>
private void ResolveSubTree(DataRow dataRow)
{
DataRow[] rows = dataRow.GetChildRows("TreeRelation");
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
DataRow[] ChlidRows = row.GetChildRows("TreeRelation");
if (ChlidRows.Length > 0)
{
//遍历
ResolveSubTree(row);
}
else
{
//输出
HTMLADD(row);
}
}
}
}
/// <summary>
/// 获取产品表
/// </summary>
/// <returns></returns>
public DataTable GetProductTable()
{
DataTable ProductTable = Common.NoPager2("adm_factorManagement", "", "ID,Valided,sort_name,sort_parentID AS ParentId", "ID", "sortType=1 AND Valided=1").Tables[0];
ProductTable.Rows[0]["ParentId"] = DBNull.Value;
return ProductTable;
}
}
}