语言:C#
平台:WEB 我现在用了3个FOR 分别生成HyperLink 大类,小类,详细类,这样实现了效果,可是速度慢的是一塌糊涂,请问这个应该怎么优化呢? for (int i = 0; i < proo.Select().Rows.Count; i++)
{
HyperLink hy = new HyperLink(); if (i == 0)
{
hy.Text = proo.Select().Rows[i]["Name"].ToString() + "</BR>"; }
else
{
hy.Text = "</BR>" + "</BR>" + proo.Select().Rows[i]["Name"].ToString() + "</BR>";
} hy.CssClass = "reg111";
Panel1.Controls.Add(hy);
pro1.da = proo.Select().Rows[i]["Name"].ToString();
for (int ix = 0; ix < proo1.Select().Rows.Count; ix++)
{
if (proo1.Select().Rows[ix]["da"].ToString() == proo.Select().Rows[i]["Name"].ToString())
{
HyperLink hy1 = new HyperLink();
hy1.Text = proo1.Select().Rows[ix]["xiao"].ToString() + "</BR>";
hy1.CssClass = "menu";
Panel1.Controls.Add(hy1); for (int ixx = 0; ixx < proo2.Select().Rows.Count; ixx++)
{
if (proo2.Select().Rows[ixx]["xiao"].ToString() == proo1.Select().Rows[ix]["xiao"].ToString())
{
HyperLink hy12 = new HyperLink();
hy12.Text = proo2.Select().Rows[ixx]["xx"].ToString() + "</BR>";
hy12.CssClass = "bai12";
Panel1.Controls.Add(hy12); } }
} } }
平台:WEB 我现在用了3个FOR 分别生成HyperLink 大类,小类,详细类,这样实现了效果,可是速度慢的是一塌糊涂,请问这个应该怎么优化呢? for (int i = 0; i < proo.Select().Rows.Count; i++)
{
HyperLink hy = new HyperLink(); if (i == 0)
{
hy.Text = proo.Select().Rows[i]["Name"].ToString() + "</BR>"; }
else
{
hy.Text = "</BR>" + "</BR>" + proo.Select().Rows[i]["Name"].ToString() + "</BR>";
} hy.CssClass = "reg111";
Panel1.Controls.Add(hy);
pro1.da = proo.Select().Rows[i]["Name"].ToString();
for (int ix = 0; ix < proo1.Select().Rows.Count; ix++)
{
if (proo1.Select().Rows[ix]["da"].ToString() == proo.Select().Rows[i]["Name"].ToString())
{
HyperLink hy1 = new HyperLink();
hy1.Text = proo1.Select().Rows[ix]["xiao"].ToString() + "</BR>";
hy1.CssClass = "menu";
Panel1.Controls.Add(hy1); for (int ixx = 0; ixx < proo2.Select().Rows.Count; ixx++)
{
if (proo2.Select().Rows[ixx]["xiao"].ToString() == proo1.Select().Rows[ix]["xiao"].ToString())
{
HyperLink hy12 = new HyperLink();
hy12.Text = proo2.Select().Rows[ixx]["xx"].ToString() + "</BR>";
hy12.CssClass = "bai12";
Panel1.Controls.Add(hy12); } }
} } }
循环外,如果Select()方法返回DataTable类型
DataTable dt = proo1.Select();
DataRow [] drs=proo1.Select();
proo1
proo2
都是DataTable类型的
proo1 数据较多
proo2 数据多
DataRow[] drs_proo=proo.Select();
DataRow[] drs_proo1=proo1.Select();
DataRow[] drs_proo2=proo2.Select();for (int i = 0; i < drs_proo.Length; i++)
{
HyperLink hy = new HyperLink(); if (i == 0)
{
hy.Text = drs_proo[i]["Name"].ToString() + "</BR>"; }
else
{
hy.Text = "</BR>" + "</BR>" + drs_proo[i]["Name"].ToString() + "</BR>";
} hy.CssClass = "reg111";
Panel1.Controls.Add(hy);
pro1.da = drs_proo[i]["Name"].ToString();
for (int ix = 0; ix < drs_proo1.Length; ix++)
{
if (drs_proo1[ix]["da"].ToString() == drs_proo[i]["Name"].ToString())
{
HyperLink hy1 = new HyperLink();
hy1.Text = drs_proo1[ix]["xiao"].ToString() + "</BR>";
hy1.CssClass = "menu";
Panel1.Controls.Add(hy1); for (int ixx = 0; ixx < drs_proo2.Length; ixx++)
{
if (drs_proo2[ixx]["xiao"].ToString() == drs_proo1[ix]["xiao"].ToString())
{
HyperLink hy12 = new HyperLink();
hy12.Text = drs_proo2[ixx]["xx"].ToString() + "</BR>";
hy12.CssClass = "bai12";
Panel1.Controls.Add(hy12); } }
} } }
你这样改改看。
用控件嵌套显示或遍历显示如reapter嵌套repater实现多级显示
按照你的代码 无法将类型“System.Data.DataTable”隐式转换为“System.Data.DataRow[]”
两种类型不是一样的?怎么解决下
或用treeview或sitemap显示多级架构参考
DataTable drs_proo1=proo1.Select();
DataTable drs_proo2=proo2.Select();for (int i = 0; i < drs_proo.Rows.Count; i++)
{
HyperLink hy = new HyperLink(); if (i == 0)
{
hy.Text = drs_proo.Rows[i]["Name"].ToString() + "</BR>"; }
else
{
hy.Text = "</BR>" + "</BR>" + drs_proo.Rows[i]["Name"].ToString() + "</BR>";
} hy.CssClass = "reg111";
Panel1.Controls.Add(hy);
pro1.da = drs_proo.Rows[i]["Name"].ToString();
for (int ix = 0; ix < drs_proo1.Rows.Count; ix++)
{
if (drs_proo1.Rows[ix]["da"].ToString() == drs_proo.Rows[i]["Name"].ToString())
{
HyperLink hy1 = new HyperLink();
hy1.Text = drs_proo1.Rows[ix]["xiao"].ToString() + "</BR>";
hy1.CssClass = "menu";
Panel1.Controls.Add(hy1); for (int ixx = 0; ixx < drs_proo2.Rows.Count; ixx++)
{
if (drs_proo2.Rows[ixx]["xiao"].ToString() == drs_proo1.Rows[ix]["xiao"].ToString())
{
HyperLink hy12 = new HyperLink();
hy12.Text = drs_proo2.Rows[ixx]["xx"].ToString() + "</BR>";
hy12.CssClass = "bai12";
Panel1.Controls.Add(hy12); } }
} } }
proo
proo1
proo2
都是String类型的 返回是DataTable