读书人

这个字符串后台怎么拼接出来

发布时间: 2013-07-08 14:13:00 作者: rapoo

这个字符串后台如何拼接出来。



卡在<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>");
}
[解决办法]

引用:
                
<dl>
<dt>产品频道</dt>

<dd>添加产品</dd>
<dd>管理产品</dd>
<dd>管理分类</dd>
</dl>

<dl>
<dt>新闻频道</dt>

<dd>添加新闻</dd>
<dd>管理新闻</dd>
<dd>管理分类</dd>
</dl>


后台

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"]);
strTxt.Append("</dt>");
}
else
{


strTxt.Append("<dd>");
strTxt.Append("<a href=\"" + dr["PageUrl"] + "\">" + dr["Name"] + "</a>");
strTxt.Append("</dd>");
}
strTxt.Append("</dl>");
}



效果:
这个字符串后台怎么拼接出来

卡在<dl></dl> 上了 如何在后台循环出 顶部HTML代码呢

给你个思路 先搜索出所有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>");
}

}

读书人网 >asp.net

热点推荐