当前位置: 代码迷 >> ASP.NET >> 第一次碰到这么复杂的有关问题
  详细解决方案

第一次碰到这么复杂的有关问题

热度:4562   发布时间:2013-02-26 00:00:00.0
第一次碰到这么复杂的问题
对表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();        }    }}
  相关解决方案