这个字符串后台如何拼接出来。
卡在<dl></dl> 上了 如何在后台循环出 顶部HTML代码呢
[解决办法]
用双重循环
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
strTxt.Append("<dl>");
if ((int)dr["ParentId"] == 0)
{
strTxt.Append("<dt>");
strTxt.Append(dr["Name"]);
for (int j = 0; j < dt.Columns.Count; j++)
{
strTxt.Append("<dd>"+dt[i][j].ToString()"+</dd>");
}
//或者
strTxt.Append("<dd>"+dt[i]["列名"].ToString()"+</dd>");
strTxt.Append("<dd>"+dt[i]["列名"].ToString()"+</dd>");
strTxt.Append("<dd>"+dt[i]["列名"].ToString()"+</dd>");
strTxt.Append("</dt>");
}
else
{
strTxt.Append("<dd>");
strTxt.Append("<a href=\"" + dr["PageUrl"] + "\">" + dr["Name"] + "</a>");
for (int j = 0; j < dt.Columns.Count; j++)
{
strTxt.Append("<dd>"+dt[i][j].ToString()"+</dd>");
}
strTxt.Append("</dd>");
}
strTxt.Append("</dl>");
}
[解决办法]
给你个思路 先搜索出所有ParentId=0的结果 然后再循环搜索出来的结果,对每个结果再去查询出ParentId=这个id的 结果 而不是一次全部搜索出来
[解决办法]
你分开取两个datatable就一目了然了
[解决办法]
得用递归如下
public StringBuilder sb = new StringBuilder();
public void GetResult(DataTable dt,int pid=0,bool flag=true)
{
DataRow[] drs = dt.Select(" pid="+pid);
foreach (DataRow dr in drs)
{
if (flag)
{
sb.Append( "<dl>");
sb.Append( dr["Name"].ToString());
GetResult( dt, (int)dr["ID"], false);
sb.Append( "</dl>");
}
else
{
sb.Append( "<dd>");
sb.Append( dr["Name"].ToString());
sb.Append( "</dd>");
}
}
}
得到
GetResult(dt);
string _result = sb.ToString();
[解决办法]
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
if ((int)dr["ParentId"] == 0)
{
if(i==0)
strTxt.Append("<dl>");
else
strTxt.Append("</dl><dl>");
strTxt.Append("<dt>");
strTxt.Append(dr["Name"]);
strTxt.Append("</dt>");
}
else
{
strTxt.Append("<dd>");
strTxt.Append("<a href=\"" + dr["PageUrl"] + "\">" + dr["Name"] + "</a>");
strTxt.Append("</dd>");
}
}
strTxt.Append("</dl>");
[解决办法]
StringBuilder strTxt = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
if ((int)dr["ParentId"] == 0)
{
if (i == 0)
strTxt.Append("<dl>");
else
strTxt.Append("</dl><dl>");
strTxt.Append("<dt>");
strTxt.Append(dr["Name"]);
strTxt.Append("</dt>");
}
else
{
strTxt.Append("<dd>");
strTxt.Append("<a href=\"" + dr["PageUrl"] + "\">" + dr["Name"] + "</a>");
strTxt.Append("</dd>");
if (i == dt.Rows.Count - 1)
strTxt.Append("</dl>");
}
}