前台循环一个DataTable,然后用一个string类型接收其中的值,循环显示!protected void hz()
    {
        DataTable dtModule = Session["module"] as DataTable;
        DataTable dtPro = Session["proinfo"] as DataTable;
        DataTable dtUser = Session["user"] as DataTable;
        if (dtUser.Rows[0]["ModuleLevel"].ToString() == "2")
        {
            henzhou();
        }    }    private void henzhou()
    {
        DataTable dtPro = Session["proinfo"] as DataTable;
        DataTable dtUser = Session["user"] as DataTable;
        string[] str = dtPro.Rows[0]["PROALIAS"].ToString().Split('|');
        string[] str1 = dtUser.Rows[0]["PROALIAS"].ToString().Split('|');
        if (dtUser.Rows.Count > 0)
        {
            if (dtPro.Select(" ProID=" + dtUser.Rows[0]["ProID"].ToString()).Length > 0)
            {
                Html = "<ul>";
                for (int i = 0; i < dtUser.Rows.Count; i++)
                {
                    if (!Html.Contains(dtUser.Rows[i]["PRONAME"].ToString()))
                    {
                        Html = string.Format("<li><a href='Homepage.aspx'><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + str1[0], dtUser.Rows[i]["PRONAME"].ToString());
                    }
                }
                Html += "</ul>";
            }
            else
            {
                Html = "<ul>";
                for (int i = 0; i < dtPro.Rows.Count; i++)
                {
                    if (Html.Contains(dtUser.Rows[i]["PRONAME"].ToString()))
                    {
                        Html = string.Format("<li><a href='Homepage.aspx'><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + str[1], dtPro.Rows[i]["PRONAME"].ToString());
                    }
                }
                Html += "</ul>";
            }
        }        
Pro 是产品总表。
user 是用户表。
加载所有的Pro
用户有的出现亮色('01.PNG|')
没有的出现('|02.png')
怎样实现啊?
我的代码循环里面出了问题,每次只能出现第一个,后面的都没有了。各位帮帮忙啊!谢谢!本人QQ:88031572

解决方案 »

  1.   

    if (dtPro.Select(" ProID=" + dtUser.Rows[0]["ProID"].ToString()).Length > 0)
    这个条件好像一直能满足吧,这样你就只取了str[0]的值,不会进入else去取得str[1]的值
      

  2.   

    用户有的出现亮色('01.PNG|')
    没有的出现('|02.png')
    这两句不是同一条么。?
    遍历的时候判断是否contains("|")
    如果true
    进行分割
    split('|')
    在进行遍历输出。
      

  3.   

    foreach(DataRow user in dtUser.Rows)
    {
       DataRow[] pro=dtPro.Select(" ProID=" + dtUser.Rows[0]["ProID"].ToString())
       if(pro.length>0)
       {
         ....'01.PNG'...
         foreach(DataRow item in pro)
         { 
            ...
         }
       }
       else
       {
         ....'02.PNG'...   }
    }
      

  4.   


    private void henzhou()
        {
            DataTable dtPro = Session["proinfo"] as DataTable;
            DataTable dtUser = Session["user"] as DataTable;
            string[] str = dtPro.Rows[0]["PROALIAS"].ToString().Split('|');
            string[] str1 = dtUser.Rows[0]["PROALIAS"].ToString().Split('|');
            if (dtUser.Rows.Count > 0)
            {
                foreach (DataRow user in dtUser.Rows)
                {
                    DataRow[] pro = dtPro.Select(" ProID=" + dtUser.Rows[0]["ProID"].ToString());
                    if (pro.Length > 0)
                    {
                        Html = "<ul>";
                        for (int i = 0; i < dtUser.Rows.Count; i++)
                        {
                            foreach (string Cl in str1)
                            {                            Html = string.Format("<li><a href='Homepage.aspx'><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + Cl[0], dtUser.Rows[i]["PRONAME"].ToString());
                            }
                        }
                        Html += "</ul>";
                    }
                    else
                    {
                        for (int i = 0; i < dtPro.Rows.Count; i++)
                        {
                            if (Html.Contains(dtUser.Rows[i]["PRONAME"].ToString()))
                            {
                                Html = string.Format("<li><a href='Homepage.aspx'><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + str[1], dtPro.Rows[i]["PRONAME"].ToString());
                            }
                        }                }
                }
            }
        }
    各位高手们,不知道小弟改的对不对啊?
    不对的地方给个提示或者改一下下哦!
      

  5.   

    for (int i = 0; i < dtUser.Rows.Count; i++)
    if里的for循环,应该是dtPro吧?
      

  6.   


        private void henzhou()
        {
            DataTable dtPro = Session["proinfo"] as DataTable;
            if (SessionFunction.DtPowers != null)
            {
                if (SessionFunction.DtPowers.Rows.Count > 0)
                {
                    foreach (DataRow user in dtPro.Rows)
                    {
                        DataRow[] pro = dtPro.Select(" ProID=" + SessionFunction.DtPowers.Rows[0]["ProID"].ToString());
                        if (pro.Length > 0)
                        {
                            Html = "<ul>";
                            for (int i = 0; i < SessionFunction.DtPowers.Rows.Count; i++)
                            {
                                if (!Html.Contains(SessionFunction.DtPowers.Rows[i]["PRONAME"].ToString()))
                                {
                                    string[] str1 = SessionFunction.DtPowers.Rows[0]["PROALIAS"].ToString().Split('|');
                                    Html += string.Format("<li><a href='Homepage.aspx'><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + str1[0], SessionFunction.DtPowers.Rows[i]["PRONAME"].ToString());
                                }
                                else
                                {
                                    string[] str = dtPro.Rows[0]["PROALIAS"].ToString().Split('|');
                                    Html += string.Format("<li><a href=''><img src='{0}' /><p>{1}</p></a></li>", BasePage.ApplicationPath + "/Images/" + str[1], dtPro.Rows[0]["PRONAME"].ToString());
                                }
                                //break;
                            }
                            Html += "</ul>";
                        }
                    }
                }
            }
        }
    都一天了,还是没人帮下忙吗?现在上面的代码做到了都循环了
    但是有一个只有一条数据的循环出来了两次
    怎样先吧Pro里面的所有的循环遍历出来然后跟user的循环啊?
    各位大哥大姐们帮帮忙啊~!
      

  7.   

    关注…………
    遍历
            System.Data.DataTable dt = PublishersOper.SelectAll();        ////遍历表头
            //for (int i = 0; i < dt.Columns.Count; i++)
            //{
            //    Response.Write(dt.Columns[i].ColumnName+"   ");
            //}
            //Response.Write("<br>");
            ////遍历
            //for (int i = 0; i < dt.Rows.Count; i++)
            //{
            //    for (int j = 0; j < dt.Columns.Count; j++)
            //    {
            //        Response.Write(dt.Rows[i][j]+"   ");
            //    }
            //    Response.Write("<br>");
            //}                      Response.Write("<table> <tr>");
            //遍历表头
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Response.Write(" <td>"+dt.Columns[i].ColumnName + "</td>");
            }
            Response.Write(" </tr>");
            //遍历
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Response.Write("<tr>");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    Response.Write("<td>"+dt.Rows[i][j] + "</td>");
                }
                 Response.Write(" </tr>");
            }
            Response.Write(" </table>");
      

  8.   

    我这个东东不是一个dt啊
    是两个
    一个是产品的pro
    一个是用户的user
    怎样让他们两个循环比对呢?