根据选择条件显示行,

   下图的效果:

其实下面不是一个如gridview之类的控件,

每一行都是在后台的HTML代码计算之后输出的,

  记得做这个功能的时候做的特麻烦,先取选择了几项,然后在判断选择的是哪一项和几项,再根据选择的添加后台的HTML代码, 

 贴个选择4项的时候的代码,1 对应第一个  1 是第2个选择 2是第3个 22第4个 ,3第5个 33第六个,

  #region length=3
                    else if (check.Length == 3)
                    {
                        string a = check[0];
                        string b = check[1];
                        string c = check[2];
                      
                        //登录
                        if (a == "1" || b == "1" || c == "1" )
                        {
                            sbPrice.Append(string.Format("<td>{0}</td>", dtInfo.Rows[i]["loginCount"].ToString()));
                        }
                        else
                        {
                            login.Visible = false;
                            td_login.Visible = false;
                        }
                        //登录次数
                        if (a == "11" || b == "11" || c == "11")
                        {
                            if (Convert.ToDouble(dtInfo.Rows[i]["loginCount"]) == Convert.ToDouble(dtInfo.Rows[i + 1]["loginCount"]))
                            {
                                sbPrice.Append("<td>0%</td>");
                            }
                            else if (Convert.ToDouble(dtInfo.Rows[i + 1]["loginCount"]) == 0)
                            {
                                sbPrice.Append("<td>" + dtInfo.Rows[i]["loginCount"] + "00%</td>");
                            }
                            else
                            {
                                sbPrice.Append(string.Format("<td>{0}</td>", (((Convert.ToDouble(dtInfo.Rows[i]["loginCount"]) - Convert.ToInt32(dtInfo.Rows[i + 1]["loginCount"])) / Convert.ToInt32(dtInfo.Rows[i + 1]["loginCount"])) * 100).ToString("##.00") + "%"));
                            }
                        }
                        else
                        {
                            loginB.Visible = false;
                            td_loginB.Visible = false;
                        }
                        //询价
                        if (a == "2" || b == "2" || c == "2")
                        {
                            sbPrice.Append(string.Format("<td>{0}</td>", dtInfo.Rows[i]["PriceCount"].ToString()));
                        }
                        else
                        {
                            price.Visible = false;
                            td_price.Visible = false;
                        }
                        //询价环比
                        if (a == "22" || b == "22" || c == "22")
                        {
                            if (Convert.ToDouble(dtInfo.Rows[i]["PriceCount"]) == Convert.ToDouble(dtInfo.Rows[i + 1]["PriceCount"]))
                            {
                                sbPrice.Append("<td>0%</td>");
                            }
                            else if (Convert.ToDouble(dtInfo.Rows[i + 1]["PriceCount"]) == 0)
                            {
                                sbPrice.Append("<td>" + dtInfo.Rows[i]["PriceCount"] + "00%</td>");
                            }
                            else
                            {
                                sbPrice.Append(string.Format("<td>{0}</td>", (((Convert.ToDouble(dtInfo.Rows[i]["PriceCount"]) - Convert.ToInt32(dtInfo.Rows[i + 1]["PriceCount"])) / Convert.ToInt32(dtInfo.Rows[i + 1]["loginCount"])) * 100).ToString("##.00") + "%"));
                            }
                        }
                        else
                        {
                            priceB.Visible = false;
                            td_priceB.Visible = false;
                        }
                        //打印
                        if (a == "3" || b == "3" || c == "3")
                        {
                            sbPrice.Append(string.Format("<td>{0}</td>", dtInfo.Rows[i]["printCount"].ToString()));
                        }
                        else
                        {
                            prints.Visible = false;
                            td_print.Visible = false;
                        }
                        //打印环比
                        if (a == "33" || b == "33" || c == "33" )
                        {
                            if (Convert.ToDouble(dtInfo.Rows[i]["printCount"]) == Convert.ToDouble(dtInfo.Rows[i + 1]["printCount"]))
                            {
                                sbPrice.Append("<td>0%</td>");
                            }
                            else if (Convert.ToDouble(dtInfo.Rows[i + 1]["printCount"]) == 0)
                            {
                                sbPrice.Append("<td>" + dtInfo.Rows[i]["printCount"] + "00%</td>");
                            }
                            else
                            {
                                sbPrice.Append(string.Format("<td>{0}</td>", (((Convert.ToDouble(dtInfo.Rows[i]["printCount"]) - Convert.ToInt32(dtInfo.Rows[i + 1]["printCount"])) / Convert.ToInt32(dtInfo.Rows[i + 1]["printCount"])) * 100).ToString("##.00") + "%"));
                            }
                        }
                        else
                        {
                            printSB.Visible = false;
                            td_printB.Visible = false;
                        }
                    }
                    #endregion

做的太麻烦了,,谁有简单的方法,参考参考。

posted @ 2011-05-09 15:13  lice  阅读(318)  评论(0编辑  收藏  举报