前台循环一个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
{
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
这个条件好像一直能满足吧,这样你就只取了str[0]的值,不会进入else去取得str[1]的值
没有的出现('|02.png')
这两句不是同一条么。?
遍历的时候判断是否contains("|")
如果true
进行分割
split('|')
在进行遍历输出。
{
DataRow[] pro=dtPro.Select(" ProID=" + dtUser.Rows[0]["ProID"].ToString())
if(pro.length>0)
{
....'01.PNG'...
foreach(DataRow item in pro)
{
...
}
}
else
{
....'02.PNG'... }
}
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());
}
} }
}
}
}
各位高手们,不知道小弟改的对不对啊?
不对的地方给个提示或者改一下下哦!
if里的for循环,应该是dtPro吧?
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的循环啊?
各位大哥大姐们帮帮忙啊~!
遍历
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>");
是两个
一个是产品的pro
一个是用户的user
怎样让他们两个循环比对呢?