10個devexpressASPxPivotGrid常見問題

傑克.陳發表於2014-05-07
原文:
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>


相關文章