问题描述
因为报表分析页面需要所以选择了ASPxPivotGrid。我根据数据动态生成PivotGridField,然后在控件的load事件中将dataset绑定至控件中。控件的基本功能已完成,唯有在列头拖动的时候不能实现。求解。。。附上源码:]动态生成PivotGridFieldprivatevoidPivotGridDataBind(DataSetds){if(ds!=null&&ds.Tables["ShowRowType"]!=null){if(ASPxPivotGrid1.Fields.Count<=0){ASPxPivotGrid1.Fields.Clear();intindex=0;foreach(DataRowrowinds.Tables["ShowRowType"].Rows){PivotGridFieldpgf=newPivotGridField();if(row["ShowType"].ToString()=="DCData"){pgf.Area=DevExpress.XtraPivotGrid.PivotArea.DataArea;pgf.GroupIndex=1;}elseif(row["ShowType"].ToString()=="DCRow"){pgf.Area=DevExpress.XtraPivotGrid.PivotArea.RowArea;pgf.GroupIndex=2;}elseif(row["ShowType"].ToString()=="DCColumn"){pgf.Area=DevExpress.XtraPivotGrid.PivotArea.ColumnArea;pgf.GroupIndex=3;}else{pgf.Area=DevExpress.XtraPivotGrid.PivotArea.FilterArea;pgf.GroupIndex=0;}pgf.FieldName=row["FildName"].ToString();pgf.Caption=row["DisplayName"].ToString();pgf.Index=index;//pgf.FilterValues.Clear();ASPxPivotGrid1.Fields.AddField(pgf);index++;}}}}
控件load事件protectedvoidASPxPivotGrid1_Load(objectsender,EventArgse){if(!IsPostBack){PivotGridDataBind(DataXML);}stringreportName=DataXML.Tables["_OPERATOR"]!=null?DataXML.Tables["_OPERATOR"].Rows[0]["TABLE_NAME"].ToString():"";if(reportName!=""){ASPxPivotGrid1.DataSource=DataXML.Tables[reportName];ASPxPivotGrid1.DataBind();}}load事件中如果回传时不重新绑定数据,控件上的数据丢失。在线等。。。。。。。。。。
解决方案
解决方案二:
没用过.帮顶!!!!!
解决方案三:
这个控件很不好用的说看看demo,也就是那个属性的问题
解决方案四:
reportName为空
解决方案五:
protectedvoidASPxPivotGrid1_Load(objectsender,EventArgse){{PivotGridDataBind(DataXML);}stringreportName=DataXML.Tables["_OPERATOR"]!=null?DataXML.Tables["_OPERATOR"].Rows[0]["TABLE_NAME"].ToString():"";if(reportName!=""){ASPxPivotGrid1.DataSource=DataXML.Tables[reportName];ASPxPivotGrid1.DataBind();}}