日期:2014-05-20  浏览次数:20482 次

第一次碰到这么复杂的问题
对表a进行自定义统计,行和列都是可以无限选的 
行:字段1(一级) 字段2(二级).... 
列:字段3(一级) 字段4(二级).... 


行头以字段1为例 
select distinct 字段1 from a 
值1 
值2 

图中x的等效形式为select x=sum(字段5) from a where 字段1=字段1.值1 and 字段3=字段3.值1 and 字段2=字段2.值2 and 字段4=字段4.值2 

求数据查询和表生成的最优解决方案

------解决方案--------------------
= =#看高手答。
------解决方案--------------------
字段1……字段2……看得晕啊……
------解决方案--------------------
用水晶报表 交叉表吧,或者嵌套N个gridview



------解决方案--------------------
mark 帮顶
------解决方案--------------------
等高手来。。
------解决方案--------------------
查询出所有数据 去前台去处理好不好 将处理后的结果填充到表格
------解决方案--------------------
C# code

参考
 <asp:GridView ID="GridView1"  OnRowDataBound="GridView1_RowDataBound"  AutoGenerateColumns=false runat="server">
      <Columns>
        <asp:TemplateField>
        <ItemTemplate> 
           <%#Container.DataItem.ToString()%>
               <!--第二层GridView开始-->
               <asp:GridView ID="GridView2" OnRowDataBound="GridView2_RowDataBound"   AutoGenerateColumns=false runat="server">          
                 <Columns>
                  <asp:TemplateField>
                  <ItemTemplate> 
                      <%#Container.DataItem.ToString()%>
                       <!--第三层GridView开始-->
                      <asp:GridView ID="GridView3"  AutoGenerateColumns=false runat=server>
                           <Columns>
                             <asp:TemplateField>
                             <ItemTemplate> 
                              <%#Container.DataItem.ToString()%>
                             </ItemTemplate>
                             </asp:TemplateField>                    
                           </Columns>
                        </asp:GridView>
                       <!--第三层GridView 结束-->
                       
                   </ItemTemplate>
                  </asp:TemplateField>
                 </Columns>
                </asp:GridView>
              <!--第二层GridView结束-->
              
          </ItemTemplate>
          </asp:TemplateField>
         </Columns>
        </asp:GridView>
         <!--第一层GridView结束-->



++++++++++.cs代码++++++++++++++++
RowDataBound与1.x中的ItemDataBound也有一腿!
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.GridView1.DataSource = Al("GridView1Item:");
        this.GridView1.DataBind();
    }

    //DataSource
    protected ArrayList Al(string GetStr)
    {
        ArrayList al = new ArrayList();
        for(int i=0;i<2;i++)
        {
            al.Add(GetStr+i.ToString());
        }

        return al;
    }


    //GridView1_RowDataBound
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridView gv = (GridView)e.Row.FindControl("GridView2");
            gv.DataSource = Al("GridView2Item:");
            gv.DataBind();
            
        }
    }

    //GridView2_RowDataBound
    protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridView gv = (GridView)e.Row.FindControl("GridView3");
            gv.DataSource = Al("GridView3Item:");
            gv.DataBind();

        }
    }
}