首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-07-08 
这个字符串后台如何拼接出来。卡在dl/dl 上了如何在后台循环出 顶部HTML代码呢[解决办法]用双重循环for

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



卡在<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>");
                }

            }

热点排行