asp.net中,如果用变量给datalist中添加值,用到了循环,是显示的最后一个的值,还是循环当中的值?

解决方案 »

  1.   

    if(!IsPostBack)
    {

    int a=Convert .ToInt32 (Request .QueryString ["aa"]);
    if(a>0)
    {
    if(Session ["aa"]!=null)
    {
    string id=Session ["aa"].ToString ();
    string Cpxlid=Request .QueryString["Cpxlid"];
    int c=Convert .ToInt32 (id.Length .ToString ())-1;
    string cc=id.ToString ().Substring (0,c).ToString ();

    string aaa =string.Empty;
    string bb=string .Empty ;
    string ccc=string.Empty ;
    string [] rr=new string [a];
    for(int i=0;i<a;i++)
    {
    if(i==0)
    {

    rr=substr(cc.ToString ());
    string productid=rr[0].ToString ();
    ccc="Product.Productid="+productid;
    }
    else
    {
    string pid=rr[i].ToString ();
    aaa += " or Product. Productid ="+pid;
    } bb=ccc+aaa;
    string sql="SELECT distinct Product.Productid,Product.ProductName,Product.ProductPic,Max(Sjsp.Lsj) FROM Product INNER JOIN Sjsp ON Product.Productid =Sjsp.Productid WHERE "+bb+" group by Product.Productid,Product.ProductName,Product.ProductPic";
                         

    DataSet ds=DB.GetDataSet (sql,"Product");
    string sql2="select Product.Productid,PCsb.Productid,PCsb.CsContent,Cpcs.Csid,Cpcs.CsName,Cpcs.Cpxlid from PCsb INNER JOIN Cpcs ON PCsb.Csid=Cpcs.Csid INNER JOIN Product ON Product.Productid=PCsb.Productid where "+bb+"";
    DataSet ds2=DB.GetDataSet (sql2,"PCsb");
    string aa="";
    for(int j=0;j<5;j++)
    {
    if(ds2.Tables ["PCsb"].Rows .Count >0)
    {

    aa+=ds2.Tables ["PCsb"].Rows [j]["CsName"].ToString ()+":"+ds2.Tables ["PCsb"].Rows [j]["CsContent"].ToString (); }
    }
    CsName=aa.ToString ();
    DataList2 .DataSource =ds;
    DataList2 .DataKeyField ="Productid";
    DataList2 .DataBind ();

    }
    }
    }
    else
    {
    string sql2="select Product.Productid,PCsb.Productid,PCsb.CsContent,Cpcs.Csid,Cpcs.CsName,Cpcs.Cpxlid from PCsb INNER JOIN Cpcs ON PCsb.Csid=Cpcs.Csid INNER JOIN Product ON Product.Productid=PCsb.Productid where Cpcs.Cpxlid="+Request .QueryString["Cpxlid"]+"";
    DataSet ds2=DB.GetDataSet (sql2,"PCsb");
    string aa="";
    for(int j=0;j<5;j++)
    {
    if(ds2.Tables ["PCsb"].Rows .Count >0)
    {

    aa+=ds2.Tables ["PCsb"].Rows [j]["CsName"].ToString ()+":"+ds2.Tables ["PCsb"].Rows [j]["CsContent"].ToString (); }
    }
    CsName=aa.ToString ();
    string sql1="SELECT distinct Product.Productid,Product.ProductName,Product.ProductPic,Max(Sjsp.Lsj) FROM Product INNER JOIN Sjsp ON Product.Productid =Sjsp.Productid WHERE Product.Cpxlid="+Request .QueryString["Cpxlid"]+" group by Product.Productid,Product.ProductName,Product.ProductPic";
    DataList2 .DataSource =DB.GetDataSet (sql1,"Product");
    DataList2 .DataKeyField ="Productid";
    DataList2 .DataBind ();
    }
    }在上面定义了一个变量:CsName,是来传参数的,在datalist中要显示CsName中的值,但是现在显示出来的是for循环到最后一次的值,我现在想求当循环一次,CsName中的值就要帮定到datalist中,跟前面传来的产品对应该起来!