Devexpress常見問題

守望陽光01發表於2017-08-19

1.DevExpress控制元件組中的GridControl控制元件不能使橫向滾動條有效。

現象:控制元件中的好多列都擠在一起,列寬都變的很小,根本無法正常瀏覽控制元件單元格中的內容。

解決:gridView1.OptionsView.ColumnAutoWidth屬性是true,即各列的寬度自動調整,你把它設成false,就會出現了。

2.使單元格不可編輯。

解決:gridcontrol -->gridview -->OptionsBehavior -->Editable=false

3.沒有下拉滾動條事件怎麼辦?

現象:因為需要載入大資料量資料,所以不能一次把所有資料讀入datatable進行繫結,所以決定在使用者進一步瀏覽資料時進行資料的實時載入工作,就是每當使用者拉動滾動條時,多載入一些資料進入datatable.沒有找到合適的滾動條事件,於是用這個事件代替了,非常合適我的需求。

解決:TopRowChanged事件。

4.獲取選定行,指定列單元格的內容

解決程式碼如下:

        private string GetSelectOID()
        {
            int[] pRows = this.gridView1.GetSelectedRows();
            if (pRows.GetLength(0) > 0)
                return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString ();
            else
                return null;
        }

//mOIDFiledName為要獲取列的列名

5.去除"Drag a Column Header Here To Group by that Column"

解決:修改屬性Gridview->Option View->Show Group Panel=false,就好了

6.在gridcontrol中新增checkbox核取方塊

解決:gridview->run designer->columns->選擇要變成核取方塊的那一列->column edit->new(在這裡可以選擇很多型別)

載入checkbox資料時,費了一點時間,checkbox的核取方塊怎麼點選,一失去焦點是,選擇的操作就無效了,問題就出在datatable的繫結上了,一定要繫結一個布林的型別。

程式碼如下:

private void FrmCreateLegend_Load(object sender, EventArgs e)
{
    IFeatureLayer pFeatureLayer;
    IDataset pDataset;
    string pName;
    DataTable pDatatable = new DataTable();
    pDatatable.Columns.Add("圖層名稱", System.Type.GetType("System.String"));
    pDatatable.Columns.Add("選擇", System.Type.GetType("System.Boolean"));
    DataRow pDataRow;
    object[] rowArray = new object[2];
    for (int i = 0; i < mFeatureLayers.Count; i++)
    {
        pDataRow = pDatatable.NewRow();
        pFeatureLayer = mFeatureLayers[i] as IFeatureLayer;
        rowArray[0] = pFeatureLayer.Name;
        rowArray[1] = false;
        pDataRow.ItemArray = rowArray;
        pDatatable.Rows.Add(pDataRow);
    }

    this.gridMark.DataSource = pDatatable;
    this.gridMark.Refresh();
}

注意:建立的datatable的列名一定要和gridview中的列的fieldname屬性值是一個名字,不然,你會發現新增了和你繫結的datatalbe一樣多的行,可是行裡面卻沒有內容的。

7.多選

解決:GridControl->GridView->屬性->OptinosSelecttion->MultiSelect

8.不顯示子表資訊

解決:當我們對DataTable建立父子關係後,將父表繫結在Grid上,會造成關係列上有加號顯示,並且可以展開。如果你覺得展開的資訊對你沒有意義的話,是可以關掉的。這是需要修改屬性

Gridview->Option View->ShowDetailButtons=false

 

文章轉載自:DevExpress控制元件中文網 [http://www.devexpresscn.com/]