首页 > 代码库 > 10个devexpress ASPxPivotGrid常见问题
10个devexpress ASPxPivotGrid常见问题
1、DXperience ASPxGridView如何开启lightweight模式
描述:ASPxGridView样式主题中page render mode选项里面有 lightweight模式,要如何开启此模式?
解答:目前ASPxGridView控件本身不支持Lightweight模式,目前支持的控件包括:ASPxMenu ASPxNavBar,ASPxPager,ASPxPageControl,ASPxPopupControl,ASPxPopupMenu,ASPxTabControl。
2、GridControl的数据和数据源打印之后不同步
描述:frmTest、gridcontrol1、gridview1、dtView、dtview为 gridcontrol1的数据源。数据源是根据dtview按照一定规则重新生成的 datatable,xtrareport.showpreviewdialog()打印之后frmtest的数据是没有清空的,gridview可以继续编辑和打印报表。问题就是:打印一次之后gridview可以再次编辑,但是绑定的数据源dtview就一直和打印之前是一样的效果,也就是 gridcontrol的数据和数据源不同步了。
解答:GridControl是不支持自动保存数据到数据库的,所以请使用GridView.RowUpdated 事件,并通过代码将更改的数据保存到数据源。
3、Dxperience PivotGridControl设置的数据类型不为空
描述:我赋值给PivotGridControl.DataSource的dataset中某列的数据类型是可以为空的decimal,其中有些行是null,即使使用EmptyCellText=""显示仍然是0.00,而我要的结果是空。
解答:EmptyCellText是指当指定单元格对应的底层数据源中不包含数据,那么当前单元格就不显示任何内容,这时可通过该属性设置其显示文本,而如果您的示例中指定单元格底层数据源中有数据,但只是数据为0时,使用该属性是不起作用。
建议您使用PivotGridControl.CustomCellDisplayText事件来自定义当数据为0时的显示文本。
4、DXperience PivotGridField自定义格式化方法
描述:如果PivotGridField中的值为2011,2012等数字,有没有自定义格式化的方法将2011,2012等格式化为:
2011(万吨),2012(万吨)
解答:您可以通过设置PivotGridField.CellFormat来实现该功能,参考代码如下:
<dxpg:PivotGridField Name= "fieldQuantity" FieldName= "Quantity" Area= "DataArea" CellFormat= "{0}(万吨)" /> |
5、DevExpress GridView选中行字体加粗问题
描述:GridView外面有一个按钮,当我选中一行后,点击按钮,那行的字体加粗加黑,怎么实现?
解答:GridView选中行字体加粗,建议您使用以下代码实现:
Font font = new System.Drawing.Font( "" , 10, FontStyle.Regular); gridView1.Appearance.FocusedRow.Font = font; |
6、DevExpress Gridview中有一列是删除链接按钮,怎么变为普通button样式
描述:代码如下
| <dx:GridViewCommandColumn VisibleIndex= "7" > <EditButton Visible= "True" Text= "编辑" > </EditButton> <DeleteButton Visible= "True" Text= "删除" > </DeleteButton> <ClearFilterButton Visible= "True" > </ClearFilterButton> </dx:GridViewCommandColumn> |
解答:要将GridView删除按钮改为普通button样式,可通过GridViewCommandColumn.ButtonType 属性进行设置。
7、DXperience多线程下访问XtraGrid实例安全吗
描述:DXperience多线程可以安全地访问同一个XtraGrid的实例吗?此外,如果XtraGrid的多个实例被用于多个线程,有什么线程安全问题要注意的吗?
解答:DXperience可视控件只有三个方法是线程安全的:CreateGraphics,Invoke和BeginInvoke。XtraGrid的方法应通过BeginInvoke调用其他的线程。
应用程序可以在不同线程的XtraGrid创建多个实例形式。在这种情况下不应该有任何问题:网格控件在不同的线程形式下正确访问共享资源。
解答:设置PropertiesCheckEdit-ValueChecked="Y" PropertiesCheckEdit-ValueUnchecked="N"
8、如何在DXperience DXPivotGrid控件上增加一列百分比
描述:我想在DXPivotGrid中新增加一列XX率,是第一列和第二列的百分比,在帮助上只是找见这个PivotGridControl.ShowFieldList方法,可是还不会使用。
解答:ShowFieldList/HideFieldList 是用来显示“字段选择面板”的。<br/>关于您的所描述的"自定义计算成员"的问题您可以通过 Unbound Field 来实现,参考链接:
http://documentation.devexpress.com/#WPF/CustomDocument8025不过遗憾的是,OLAP 模式下无法使用该方式,因此在该模式下,您需要在 OLAP 服务器端定义自定义计算成员。
9、DXperience XtraGrid如何清除网格
描述:XtraGrid网格中显示了数据,在某一时刻,我需要清除网格,如何实现?
解答:你应该设置GridControl.DataSource属性为null,并调用Columns.Clear()方法阻止网格主视图。
| [C#] gridControl1.DataSource = null ; gridView1.Columns.Clear(); |
如果需要恢复原来的网格视图,你可以动态地创建一个临时的空GridView,并将它分配给GridControl。
| [C#] using
DevExpress.XtraGrid.Views.Grid; object
ds; // clear ds = gridControl1.DataSource; gridControl1.DataSource = null ; GridView view = new GridView(gridControl1); view.OptionsView.ShowGroupPanel = false ; view.OptionsView.ShowColumnHeaders = false ; gridControl1.MainView = view; // restore gridControl1.MainView = gridView1; gridControl1.DataSource = ds; |
10、如何绑定Devexpress Gridview的checkbox列中的数据源
描述:在Gridview添加了GridViewDataCheckColumn列,然后绑定了数据源,对应的字段 Locked,该字段在数据库中存的是string类型的值,如"Y","N",我想页面根据这个值来显示checkbox的选中情况,如“Y”表示选中,“N”就不选中,怎么实现?
我的前台代码是:
<dx:GridViewDataCheckColumn FieldName= "Locked" VisibleIndex= "3" Caption= "已锁定" PropertiesCheckEdit-DisplayTextChecked= "是" PropertiesCheckEdit-DisplayTextUnchecked= "否" > </dx:GridViewDataCheckColumn> |