首页 > 代码库 > 10个devexpress ASPxPivotGrid常见问题

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>