原創(chuàng)|其它|編輯:郝浩|2013-01-23 12:51:38.000|閱讀 1211 次
概述:DXperience下有5個Grid網(wǎng)格控件:ASPxGridView、ASPxPivotGrid、XtraGrid、XtraPivotGrid、XtraVerticalGrid。本文總結了這幾個DXperience GridControl網(wǎng)格控件的常見問題(FAQ)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
網(wǎng)格控件(GridControl)是DevExpress下最強大的控件之一,它以網(wǎng)格的形式顯示和瀏覽數(shù)據(jù),可實現(xiàn)多表頭、排序、過濾分組等功能。DXperience下有這幾個Grid控件:ASPxGridView、ASPxPivotGrid、XtraGrid、XtraPivotGrid、XtraVerticalGrid。鑒于經(jīng)常有人在網(wǎng)上詢問gridcontrol的問題,下面我將這幾個DXperience gridcontrol網(wǎng)格控件的常見問題(FAQ)進行了匯總:
1、GridControl的數(shù)據(jù)和數(shù)據(jù)源打印之后不同步
描述:frmTest、gridcontrol1、gridview1、dtView、dtview為gridcontrol1的數(shù)據(jù)源。數(shù)據(jù)源是根據(jù)dtview按照一定規(guī)則重新生成的datatable,xtrareport.showpreviewdialog()打印之后frmtest的數(shù)據(jù)是沒有清空的,gridview可以繼續(xù)編輯和打印報表。問題就是:打印一次之后gridview可以再次編輯,但是綁定的數(shù)據(jù)源dtview就一直和打印之前是一樣的效果,也就是gridcontrol的數(shù)據(jù)和數(shù)據(jù)源不同步了。
解答:GridControl是不支持自動保存數(shù)據(jù)到數(shù)據(jù)庫的,所以請使用GridView.RowUpdated 事件,并通過代碼將更改的數(shù)據(jù)保存到數(shù)據(jù)源。
2、DXperience ASPxGridView如何開啟lightweight模式
描述:ASPxGridView樣式主題中page render mode選項里面有 lightweight模式,要如何開啟此模式?
解答:目前ASPxGridView控件本身不支持Lightweight模式,目前支持的控件包括:ASPxMenu ASPxNavBar,ASPxPager,ASPxPageControl,ASPxPopupControl,ASPxPopupMenu,ASPxTabControl。
3、DXperience PivotGridField自定義格式化方法
描述:如果PivotGridField中的值為2011,2012等數(shù)字,有沒有自定義格式化的方法將2011,2012等格式化為:
2011(萬噸),2012(萬噸)
解答:您可以通過設置PivotGridField.CellFormat來實現(xiàn)該功能,參考代碼如下:
<dxpg:PivotGridField Name="fieldQuantity" FieldName="Quantity" Area="DataArea" CellFormat="{0}(萬噸)" />
4、Dxperience PivotGridControl設置的數(shù)據(jù)類型不為空
描述:我賦值給PivotGridControl.DataSource的dataset中某列的數(shù)據(jù)類型是可以為空的decimal,其中有些行是null,即使使用EmptyCellText=""顯示仍然是0.00,而我要的結果是空。
解答:EmptyCellText是指當指定單元格對應的底層數(shù)據(jù)源中不包含數(shù)據(jù),那么當前單元格就不顯示任何內(nèi)容,這時可通過該屬性設置其顯示文本,而如果您的示例中指定單元格底層數(shù)據(jù)源中有數(shù)據(jù),但只是數(shù)據(jù)為0時,使用該屬性是不起作用。
建議您使用PivotGridControl.CustomCellDisplayText事件來自定義當數(shù)據(jù)為0時的顯示文本。
5、DevExpress GridView選中行字體加粗問題
描述:GridView外面有一個按鈕,當我選中一行后,點擊按鈕,那行的字體加粗加黑,怎么實現(xiàn)?
解答:GridView選中行字體加粗,建議您使用以下代碼實現(xiàn):
Font font = new System.Drawing.Font("", 10, FontStyle.Regular); gridView1.Appearance.FocusedRow.Font = font;
6、DevExpress Gridview中有一列是刪除鏈接按鈕,怎么變?yōu)槠胀╞utton樣式
描述:代碼如下
<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、如何綁定Devexpress Gridview的checkbox列中的數(shù)據(jù)源
描述:在Gridview添加了GridViewDataCheckColumn列,然后綁定了數(shù)據(jù)源,對應的字段Locked,該字段在數(shù)據(jù)庫中存的是string類型的值,如"Y","N",我想頁面根據(jù)這個值來顯示checkbox的選中情況,如“Y”表示選中,“N”就不選中,怎么實現(xiàn)?
我的前臺代碼是:
<dx:GridViewDataCheckColumn FieldName="Locked" VisibleIndex="3" Caption="已鎖定" PropertiesCheckEdit-DisplayTextChecked="是" PropertiesCheckEdit-DisplayTextUnchecked="否"> </dx:GridViewDataCheckColumn>
這樣子總是不顯示是否選中。
解答:設置PropertiesCheckEdit-ValueChecked="Y" PropertiesCheckEdit-ValueUnchecked="N"
8、如何在DXperience DXPivotGrid控件上增加一列百分比
描述:我想在DXPivotGrid中新增加一列XX率,是第一列和第二列的百分比,在幫助上只是找見這個PivotGridControl.ShowFieldList方法,可是還不會使用。
解答:ShowFieldList/HideFieldList 是用來顯示“字段選擇面板”的。<br/>關于您的所描述的"自定義計算成員"的問題您可以通過 Unbound Field 來實現(xiàn),參考鏈接:
不過遺憾的是,OLAP 模式下無法使用該方式,因此在該模式下,您需要在 OLAP 服務器端定義自定義計算成員。
9、DXperience XtraGrid如何清除網(wǎng)格
描述:XtraGrid網(wǎng)格中顯示了數(shù)據(jù),在某一時刻,我需要清除網(wǎng)格,如何實現(xiàn)?
解答:你應該設置GridControl.DataSource屬性為null,并調(diào)用Columns.Clear()方法阻止網(wǎng)格主視圖。
[C#] gridControl1.DataSource = null; gridView1.Columns.Clear();
如果需要恢復原來的網(wǎng)格視圖,你可以動態(tài)地創(chuàng)建一個臨時的空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、DXperience多線程下訪問XtraGrid實例安全嗎
描述:DXperience多線程可以安全地訪問同一個XtraGrid的實例嗎?此外,如果XtraGrid的多個實例被用于多個線程,有什么線程安全問題要注意的嗎?
解答:DXperience可視控件只有三個方法是線程安全的:CreateGraphics,Invoke和BeginInvoke。XtraGrid的方法應通過BeginInvoke調(diào)用其他的線程。
應用程序可以在不同線程的XtraGrid創(chuàng)建多個實例形式。在這種情況下不應該有任何問題:網(wǎng)格控件在不同的線程形式下正確訪問共享資源。
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件